Expose pipeline and pipelinestage in graphql (#185)
This commit is contained in:
@ -1,21 +1,27 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { GraphQLModule } from '@nestjs/graphql';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
|
||||
|
||||
import { AuthModule } from 'src/auth/auth.module';
|
||||
import { PrismaModule } from 'src/database/prisma.module';
|
||||
import { ArgsService } from './resolvers/services/args.service';
|
||||
|
||||
import { CompanyResolver } from './resolvers/company.resolver';
|
||||
import { UserResolver } from './resolvers/user.resolver';
|
||||
import { PersonResolver } from './resolvers/person.resolver';
|
||||
import { CommentResolver } from './resolvers/comment.resolver';
|
||||
import { CommentThreadResolver } from './resolvers/comment-thread.resolver';
|
||||
import { PipelineResolver } from './resolvers/pipeline.resolver';
|
||||
import { PipelineStageResolver } from './resolvers/pipeline-stage.resolver';
|
||||
|
||||
import { PersonRelationsResolver } from './resolvers/relations/person-relations.resolver';
|
||||
import { UserRelationsResolver } from './resolvers/relations/user-relations.resolver';
|
||||
import { WorkspaceMemberRelationsResolver } from './resolvers/relations/workspace-member-relations.resolver';
|
||||
import { ConfigService } from '@nestjs/config';
|
||||
import { AuthModule } from 'src/auth/auth.module';
|
||||
import { CompanyRelationsResolver } from './resolvers/relations/company-relations.resolver';
|
||||
import { PrismaModule } from 'src/database/prisma.module';
|
||||
import { ArgsService } from './resolvers/services/args.service';
|
||||
import { CommentThreadRelationsResolver } from './resolvers/relations/comment-thread-relations.resolver';
|
||||
import { PipelineRelationsResolver } from './resolvers/relations/pipeline-relations.resolver';
|
||||
import { PipelineStageRelationsResolver } from './resolvers/relations/pipeline-stage-relations.resolver';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
@ -36,12 +42,16 @@ import { CommentThreadRelationsResolver } from './resolvers/relations/comment-th
|
||||
UserResolver,
|
||||
CommentResolver,
|
||||
CommentThreadResolver,
|
||||
PipelineResolver,
|
||||
PipelineStageResolver,
|
||||
|
||||
CompanyRelationsResolver,
|
||||
PersonRelationsResolver,
|
||||
UserRelationsResolver,
|
||||
WorkspaceMemberRelationsResolver,
|
||||
CommentThreadRelationsResolver,
|
||||
PipelineRelationsResolver,
|
||||
PipelineStageRelationsResolver,
|
||||
],
|
||||
})
|
||||
export class ApiModule {}
|
||||
|
||||
31
server/src/api/resolvers/pipeline-stage.resolver.ts
Normal file
31
server/src/api/resolvers/pipeline-stage.resolver.ts
Normal file
@ -0,0 +1,31 @@
|
||||
import { Resolver, Args, Query } from '@nestjs/graphql';
|
||||
import { UseGuards } from '@nestjs/common';
|
||||
import { JwtAuthGuard } from 'src/auth/guards/jwt.auth.guard';
|
||||
import { PrismaService } from 'src/database/prisma.service';
|
||||
import { Workspace } from '../@generated/workspace/workspace.model';
|
||||
import { AuthWorkspace } from './decorators/auth-workspace.decorator';
|
||||
import { PipelineStage } from '../@generated/pipeline-stage/pipeline-stage.model';
|
||||
import { FindManyPipelineStageArgs } from '../@generated/pipeline-stage/find-many-pipeline-stage.args';
|
||||
import { ArgsService } from './services/args.service';
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Resolver(() => PipelineStage)
|
||||
export class PipelineStageResolver {
|
||||
constructor(
|
||||
private readonly prismaService: PrismaService,
|
||||
private readonly argsService: ArgsService,
|
||||
) {}
|
||||
|
||||
@Query(() => [PipelineStage])
|
||||
async findManyPipelineStage(
|
||||
@Args() args: FindManyPipelineStageArgs,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
const preparedArgs =
|
||||
await this.argsService.prepareFindManyArgs<FindManyPipelineStageArgs>(
|
||||
args,
|
||||
workspace,
|
||||
);
|
||||
return this.prismaService.pipelineStage.findMany(preparedArgs);
|
||||
}
|
||||
}
|
||||
31
server/src/api/resolvers/pipeline.resolver.ts
Normal file
31
server/src/api/resolvers/pipeline.resolver.ts
Normal file
@ -0,0 +1,31 @@
|
||||
import { Resolver, Args, Query } from '@nestjs/graphql';
|
||||
import { UseGuards } from '@nestjs/common';
|
||||
import { JwtAuthGuard } from 'src/auth/guards/jwt.auth.guard';
|
||||
import { PrismaService } from 'src/database/prisma.service';
|
||||
import { Workspace } from '../@generated/workspace/workspace.model';
|
||||
import { AuthWorkspace } from './decorators/auth-workspace.decorator';
|
||||
import { Pipeline } from '../@generated/pipeline/pipeline.model';
|
||||
import { FindManyPipelineArgs } from '../@generated/pipeline/find-many-pipeline.args';
|
||||
import { ArgsService } from './services/args.service';
|
||||
|
||||
@UseGuards(JwtAuthGuard)
|
||||
@Resolver(() => Pipeline)
|
||||
export class PipelineResolver {
|
||||
constructor(
|
||||
private readonly prismaService: PrismaService,
|
||||
private readonly argsService: ArgsService,
|
||||
) {}
|
||||
|
||||
@Query(() => [Pipeline])
|
||||
async findManyPipeline(
|
||||
@Args() args: FindManyPipelineArgs,
|
||||
@AuthWorkspace() workspace: Workspace,
|
||||
) {
|
||||
const preparedArgs =
|
||||
await this.argsService.prepareFindManyArgs<FindManyPipelineArgs>(
|
||||
args,
|
||||
workspace,
|
||||
);
|
||||
return this.prismaService.pipeline.findMany(preparedArgs);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
import * as TypeGraphQL from '@nestjs/graphql';
|
||||
import { Comment } from 'src/api/@generated/comment/comment.model';
|
||||
import { PipelineStage } from 'src/api/@generated/pipeline-stage/pipeline-stage.model';
|
||||
import { Pipeline } from 'src/api/@generated/pipeline/pipeline.model';
|
||||
import { PrismaService } from 'src/database/prisma.service';
|
||||
|
||||
@TypeGraphQL.Resolver(() => Pipeline)
|
||||
export class PipelineRelationsResolver {
|
||||
constructor(private readonly prismaService: PrismaService) {}
|
||||
|
||||
@TypeGraphQL.ResolveField(() => [Comment], {
|
||||
nullable: false,
|
||||
})
|
||||
async pipelineStages(
|
||||
@TypeGraphQL.Root() pipeline: Pipeline,
|
||||
): Promise<PipelineStage[]> {
|
||||
return this.prismaService.pipelineStage.findMany({
|
||||
where: {
|
||||
pipelineId: {
|
||||
equals: pipeline.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
import * as TypeGraphQL from '@nestjs/graphql';
|
||||
import { Comment } from 'src/api/@generated/comment/comment.model';
|
||||
import { PipelineProgress } from 'src/api/@generated/pipeline-progress/pipeline-progress.model';
|
||||
import { PipelineStage } from 'src/api/@generated/pipeline-stage/pipeline-stage.model';
|
||||
import { PrismaService } from 'src/database/prisma.service';
|
||||
|
||||
@TypeGraphQL.Resolver(() => PipelineStage)
|
||||
export class PipelineStageRelationsResolver {
|
||||
constructor(private readonly prismaService: PrismaService) {}
|
||||
|
||||
@TypeGraphQL.ResolveField(() => [Comment], {
|
||||
nullable: false,
|
||||
})
|
||||
async pipelineProgresses(
|
||||
@TypeGraphQL.Root() pipelineStage: PipelineStage,
|
||||
): Promise<PipelineProgress[]> {
|
||||
return this.prismaService.pipelineProgress.findMany({
|
||||
where: {
|
||||
pipelineStageId: {
|
||||
equals: pipelineStage.id,
|
||||
},
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user