Files
twenty/server/src/api/resolvers/pipeline-progress.resolver.ts

74 lines
2.7 KiB
TypeScript

import { Resolver, Args, Query, Mutation } 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 { ArgsService } from './services/args.service';
import { FindManyPipelineProgressArgs } from '../@generated/pipeline-progress/find-many-pipeline-progress.args';
import { PipelineProgress } from '../@generated/pipeline-progress/pipeline-progress.model';
import { UpdateOnePipelineProgressArgs } from '../@generated/pipeline-progress/update-one-pipeline-progress.args';
import { Prisma } from '@prisma/client';
import { AffectedRows } from '../@generated/prisma/affected-rows.output';
import { DeleteManyPipelineProgressArgs } from '../@generated/pipeline-progress/delete-many-pipeline-progress.args';
import { CreateOnePipelineProgressArgs } from '../@generated/pipeline-progress/create-one-pipeline-progress.args';
@UseGuards(JwtAuthGuard)
@Resolver(() => PipelineProgress)
export class PipelineProgressResolver {
constructor(
private readonly prismaService: PrismaService,
private readonly argsService: ArgsService,
) {}
@Query(() => [PipelineProgress])
async findManyPipelineProgress(
@Args() args: FindManyPipelineProgressArgs,
@AuthWorkspace() workspace: Workspace,
) {
const preparedArgs =
await this.argsService.prepareFindManyArgs<FindManyPipelineProgressArgs>(
args,
workspace,
);
return this.prismaService.pipelineProgress.findMany(preparedArgs);
}
@Mutation(() => PipelineProgress, {
nullable: true,
})
async updateOnePipelineProgress(
@Args() args: UpdateOnePipelineProgressArgs,
): Promise<PipelineProgress | null> {
return this.prismaService.pipelineProgress.update({
...args,
} satisfies UpdateOnePipelineProgressArgs as Prisma.PipelineProgressUpdateArgs);
}
@Mutation(() => AffectedRows, {
nullable: false,
})
async deleteManyPipelineProgress(
@Args() args: DeleteManyPipelineProgressArgs,
): Promise<AffectedRows> {
return this.prismaService.pipelineProgress.deleteMany({
...args,
});
}
@Mutation(() => PipelineProgress, {
nullable: false,
})
async createOnePipelineProgress(
@Args() args: CreateOnePipelineProgressArgs,
@AuthWorkspace() workspace: Workspace,
): Promise<PipelineProgress> {
return this.prismaService.pipelineProgress.create({
data: {
...args.data,
...{ workspace: { connect: { id: workspace.id } } },
},
} satisfies CreateOnePipelineProgressArgs as Prisma.PipelineProgressCreateArgs);
}
}