Improve provisionning new accounts (#757)

* Improve provisionning new accounts

* Fix lint
This commit is contained in:
Charles Bochet
2023-07-19 11:23:53 -07:00
committed by GitHub
parent 16aa507d50
commit 04c9748a96
12 changed files with 168 additions and 15 deletions

View File

@ -4,6 +4,8 @@ import { PrismaService } from 'src/database/prisma.service';
import { prismaMock } from 'src/database/client-mock/jest-prisma-singleton';
import { PipelineService } from 'src/core/pipeline/services/pipeline.service';
import { PipelineStageService } from 'src/core/pipeline/services/pipeline-stage.service';
import { PersonService } from 'src/core/person/person.service';
import { CompanyService } from 'src/core/company/company.service';
import { WorkspaceService } from './workspace.service';
@ -26,6 +28,14 @@ describe('WorkspaceService', () => {
provide: PipelineStageService,
useValue: {},
},
{
provide: PersonService,
useValue: {},
},
{
provide: CompanyService,
useValue: {},
},
],
}).compile();

View File

@ -1,14 +1,20 @@
import { Injectable } from '@nestjs/common';
import { v4 } from 'uuid';
import { PipelineStageService } from 'src/core/pipeline/services/pipeline-stage.service';
import { PipelineService } from 'src/core/pipeline/services/pipeline.service';
import { PrismaService } from 'src/database/prisma.service';
import { CompanyService } from 'src/core/company/company.service';
import { PersonService } from 'src/core/person/person.service';
@Injectable()
export class WorkspaceService {
constructor(
private readonly prismaService: PrismaService,
private readonly pipelineService: PipelineService,
private readonly companyService: CompanyService,
private readonly personService: PersonService,
private readonly pipelineStageService: PipelineStageService,
) {}
@ -45,7 +51,22 @@ export class WorkspaceService {
// Customs
async createDefaultWorkspace() {
const workspace = await this.create({ data: {} });
const workspace = await this.create({
data: {
inviteHash: v4(),
},
});
// Create default companies
const companies = await this.companyService.createDefaultCompanies({
workspaceId: workspace.id,
});
// Create default people
await this.personService.createDefaultPeople({
workspaceId: workspace.id,
companies,
});
// Create default pipeline
const pipeline = await this.pipelineService.createDefaultPipeline({

View File

@ -2,6 +2,8 @@ import { Module } from '@nestjs/common';
import { FileUploadService } from 'src/core/file/services/file-upload.service';
import { PipelineModule } from 'src/core/pipeline/pipeline.module';
import { CompanyModule } from 'src/core/company/company.module';
import { PersonModule } from 'src/core/person/person.module';
import { WorkspaceService } from './services/workspace.service';
import { WorkspaceMemberService } from './services/workspace-member.service';
@ -9,7 +11,7 @@ import { WorkspaceMemberResolver } from './resolvers/workspace-member.resolver';
import { WorkspaceResolver } from './resolvers/workspace.resolver';
@Module({
imports: [PipelineModule],
imports: [PipelineModule, CompanyModule, PersonModule],
providers: [
WorkspaceService,
FileUploadService,