Fixes https://github.com/twentyhq/twenty/issues/6859 This PR adds all the remaining resolvers for - updateOne/updateMany - createOne/createMany - deleteOne/deleteMany - destroyOne - restoreMany Also - refactored the graphql-query-runner to be able to add other resolvers without too much boilerplate. - add missing events that were not sent anymore as well as webhooks - make resolver injectable so they can inject other services as well - use objectMetadataMap from cache instead of computing it multiple time - various fixes (mutation not correctly parsing JSON, relationHelper fetching data with empty ids set, ...) Next steps: - Wrapping query builder to handle DB events properly - Move webhook emitters to db event listener - Add pagination where it's missing (findDuplicates, nested relations, etc...)
44 lines
2.6 KiB
TypeScript
44 lines
2.6 KiB
TypeScript
import { Module } from '@nestjs/common';
|
|
|
|
import { GraphqlQueryResolverFactory } from 'src/engine/api/graphql/graphql-query-runner/factories/graphql-query-resolver.factory';
|
|
import { GraphqlQueryRunnerService } from 'src/engine/api/graphql/graphql-query-runner/graphql-query-runner.service';
|
|
import { GraphqlQueryCreateManyResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-create-many-resolver.service';
|
|
import { GraphqlQueryDestroyOneResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-destroy-one-resolver.service';
|
|
import { GraphqlQueryFindDuplicatesResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-duplicates-resolver.service';
|
|
import { GraphqlQueryFindManyResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-many-resolver.service';
|
|
import { GraphqlQueryFindOneResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-find-one-resolver.service';
|
|
import { GraphqlQuerySearchResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-search-resolver.service';
|
|
import { GraphqlQueryUpdateManyResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-update-many-resolver.service';
|
|
import { GraphqlQueryUpdateOneResolverService } from 'src/engine/api/graphql/graphql-query-runner/resolvers/graphql-query-update-one-resolver.service';
|
|
import { ApiEventEmitterService } from 'src/engine/api/graphql/graphql-query-runner/services/api-event-emitter.service';
|
|
import { WorkspaceQueryHookModule } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-hook/workspace-query-hook.module';
|
|
import { WorkspaceQueryRunnerModule } from 'src/engine/api/graphql/workspace-query-runner/workspace-query-runner.module';
|
|
import { FeatureFlagModule } from 'src/engine/core-modules/feature-flag/feature-flag.module';
|
|
|
|
const graphqlQueryResolvers = [
|
|
GraphqlQueryFindOneResolverService,
|
|
GraphqlQueryFindManyResolverService,
|
|
GraphqlQueryFindDuplicatesResolverService,
|
|
GraphqlQueryCreateManyResolverService,
|
|
GraphqlQueryDestroyOneResolverService,
|
|
GraphqlQueryUpdateOneResolverService,
|
|
GraphqlQueryUpdateManyResolverService,
|
|
GraphqlQuerySearchResolverService,
|
|
];
|
|
|
|
@Module({
|
|
imports: [
|
|
WorkspaceQueryHookModule,
|
|
WorkspaceQueryRunnerModule,
|
|
FeatureFlagModule,
|
|
],
|
|
providers: [
|
|
GraphqlQueryRunnerService,
|
|
GraphqlQueryResolverFactory,
|
|
ApiEventEmitterService,
|
|
...graphqlQueryResolvers,
|
|
],
|
|
exports: [GraphqlQueryRunnerService],
|
|
})
|
|
export class GraphqlQueryRunnerModule {}
|