Fix GraphQL Api Setters not being applied (#7602)
While rebuilding the new GraphQLAPI (without pg_graphql), we forgot to include the FieldGetter logic. This logic will soon be moved at ORM level but we will need to keep it there for now The bug has many impacts such as the fileToken not being generated and preventing users from loading files
This commit is contained in:
@ -29,6 +29,7 @@ import {
|
|||||||
|
|
||||||
import { GraphqlQueryResolverFactory } from 'src/engine/api/graphql/graphql-query-runner/factories/graphql-query-resolver.factory';
|
import { GraphqlQueryResolverFactory } from 'src/engine/api/graphql/graphql-query-runner/factories/graphql-query-resolver.factory';
|
||||||
import { ApiEventEmitterService } from 'src/engine/api/graphql/graphql-query-runner/services/api-event-emitter.service';
|
import { ApiEventEmitterService } from 'src/engine/api/graphql/graphql-query-runner/services/api-event-emitter.service';
|
||||||
|
import { QueryResultGettersFactory } from 'src/engine/api/graphql/workspace-query-runner/factories/query-result-getters/query-result-getters.factory';
|
||||||
import { QueryRunnerArgsFactory } from 'src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory';
|
import { QueryRunnerArgsFactory } from 'src/engine/api/graphql/workspace-query-runner/factories/query-runner-args.factory';
|
||||||
import {
|
import {
|
||||||
CallWebhookJobsJob,
|
CallWebhookJobsJob,
|
||||||
@ -47,6 +48,7 @@ export class GraphqlQueryRunnerService {
|
|||||||
constructor(
|
constructor(
|
||||||
private readonly workspaceQueryHookService: WorkspaceQueryHookService,
|
private readonly workspaceQueryHookService: WorkspaceQueryHookService,
|
||||||
private readonly queryRunnerArgsFactory: QueryRunnerArgsFactory,
|
private readonly queryRunnerArgsFactory: QueryRunnerArgsFactory,
|
||||||
|
private readonly queryResultGettersFactory: QueryResultGettersFactory,
|
||||||
@InjectMessageQueue(MessageQueue.webhookQueue)
|
@InjectMessageQueue(MessageQueue.webhookQueue)
|
||||||
private readonly messageQueueService: MessageQueueService,
|
private readonly messageQueueService: MessageQueueService,
|
||||||
private readonly graphqlQueryResolverFactory: GraphqlQueryResolverFactory,
|
private readonly graphqlQueryResolverFactory: GraphqlQueryResolverFactory,
|
||||||
@ -353,20 +355,28 @@ export class GraphqlQueryRunnerService {
|
|||||||
|
|
||||||
const results = await resolver.resolve(computedArgs as Input, options);
|
const results = await resolver.resolve(computedArgs as Input, options);
|
||||||
|
|
||||||
|
const resultWithGetters = await this.queryResultGettersFactory.create(
|
||||||
|
results,
|
||||||
|
objectMetadataItem,
|
||||||
|
authContext.workspace.id,
|
||||||
|
);
|
||||||
|
|
||||||
await this.workspaceQueryHookService.executePostQueryHooks(
|
await this.workspaceQueryHookService.executePostQueryHooks(
|
||||||
authContext,
|
authContext,
|
||||||
objectMetadataItem.nameSingular,
|
objectMetadataItem.nameSingular,
|
||||||
operationName,
|
operationName,
|
||||||
Array.isArray(results) ? results : [results],
|
Array.isArray(resultWithGetters)
|
||||||
|
? resultWithGetters
|
||||||
|
: [resultWithGetters],
|
||||||
);
|
);
|
||||||
|
|
||||||
const jobOperation = this.operationNameToJobOperation(operationName);
|
const jobOperation = this.operationNameToJobOperation(operationName);
|
||||||
|
|
||||||
if (jobOperation) {
|
if (jobOperation) {
|
||||||
await this.triggerWebhooks(results, jobOperation, options);
|
await this.triggerWebhooks(resultWithGetters, jobOperation, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
return results;
|
return resultWithGetters;
|
||||||
}
|
}
|
||||||
|
|
||||||
private operationNameToJobOperation(
|
private operationNameToJobOperation(
|
||||||
|
|||||||
Reference in New Issue
Block a user