This commit is contained in:
2024-10-11 17:11:47 +07:00
parent 9023725fc4
commit 85026556b2
17 changed files with 794 additions and 92 deletions

View File

@@ -1,15 +1,14 @@
import { ApolloDriverConfig } from '@nestjs/apollo';
import { MiddlewareConsumer, Module } from '@nestjs/common';
import { Global, MiddlewareConsumer, Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { PothosModule } from '@smatch-corp/nestjs-pothos';
import { PothosApolloDriver } from '@smatch-corp/nestjs-pothos-apollo-driver';
import { createBuilder } from './graphql.builder';
import { Builder } from './graphql.builder';
import { PrismaService } from '../prisma/prisma.service';
import { GraphQLValidationMiddleware } from 'src/middlewares/graphql.middleware';
import { PrismaModule } from 'src/prisma/prisma.module';
import { UserModule } from 'src/user/user.module';
import { CenterModule } from 'src/center/center.module';
import { GraphqlService } from './graphql.service';
import { ServiceModule } from 'src/service/service.module';
import { ChatroomModule } from 'src/chatroom/chatroom.module';
import { CenterStaffModule } from 'src/centerstaff/centerstaff.module';
@@ -17,6 +16,9 @@ import { ResumeModule } from 'src/resume/resume.module';
import { WorkshopModule } from 'src/workshop/workshop.module';
import { WorkshopOrganizationModule } from 'src/workshoporganization/workshoporganization.module';
import { WorkshopSubscriptionModule } from 'src/workshopsubscription/workshopsubscription.module';
import { PrismaCrudGenerator } from './graphql.generator';
@Global()
@Module({
imports: [
PrismaModule,
@@ -32,14 +34,26 @@ import { WorkshopSubscriptionModule } from 'src/workshopsubscription/workshopsub
PothosModule.forRoot({
builder: {
inject: [PrismaService],
useFactory: (prisma: PrismaService) => createBuilder(prisma),
useFactory: (prisma: PrismaService) => new Builder(prisma),
},
}),
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: PothosApolloDriver,
}),
],
providers: [GraphqlService],
providers: [
{
provide: Builder,
useFactory: (prisma: PrismaService) => new Builder(prisma),
inject: [PrismaService],
},
{
provide: PrismaCrudGenerator,
useFactory: (builder: Builder) => new PrismaCrudGenerator(builder),
inject: [Builder],
},
],
exports: [Builder, PrismaCrudGenerator],
})
export class GraphqlModule {
configure(consumer: MiddlewareConsumer) {