Skip to content

Instantly share code, notes, and snippets.

@kijanowski
Created September 29, 2019 18:27
Show Gist options
  • Save kijanowski/9bac3210591c87ebaaa2fca0ba764604 to your computer and use it in GitHub Desktop.
Save kijanowski/9bac3210591c87ebaaa2fca0ba764604 to your computer and use it in GitHub Desktop.
@Component
@Internal
@Primary
@Profile("global")
public class GlobalScopedGraphQLInvocation implements GraphQLInvocation {
private final GraphQL graphQL;
@Autowired(required = false)
DataLoaderRegistry dataLoaderRegistry;
public GlobalScopedGraphQLInvocation(GraphQL graphQL) {
this.graphQL = graphQL;
}
@Override
public CompletableFuture<ExecutionResult> invoke(GraphQLInvocationData invocationData, WebRequest webRequest) {
ExecutionInput.Builder executionInputBuilder = ExecutionInput.newExecutionInput()
.query(invocationData.getQuery())
.operationName(invocationData.getOperationName())
.variables(invocationData.getVariables());
if (dataLoaderRegistry != null) {
executionInputBuilder.dataLoaderRegistry(dataLoaderRegistry);
executionInputBuilder.context(dataLoaderRegistry);
}
ExecutionInput executionInput = executionInputBuilder.build();
return graphQL.executeAsync(executionInput);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment