graphql.spring.web.servlet.components.DefaultGraphQLInvocation Maven / Gradle / Ivy
package graphql.spring.web.servlet.components;
import graphql.ExecutionInput;
import graphql.ExecutionResult;
import graphql.GraphQL;
import graphql.Internal;
import graphql.spring.web.servlet.ExecutionInputCustomizer;
import graphql.spring.web.servlet.GraphQLInvocation;
import graphql.spring.web.servlet.GraphQLInvocationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.WebRequest;
import java.util.concurrent.CompletableFuture;
@Component
@Internal
public class DefaultGraphQLInvocation implements GraphQLInvocation {
@Autowired
GraphQL graphQL;
@Autowired
ExecutionInputCustomizer executionInputCustomizer;
@Override
public CompletableFuture invoke(GraphQLInvocationData invocationData, WebRequest webRequest) {
ExecutionInput executionInput = ExecutionInput.newExecutionInput()
.query(invocationData.getQuery())
.operationName(invocationData.getOperationName())
.variables(invocationData.getVariables())
.build();
CompletableFuture customizedExecutionInput = executionInputCustomizer.customizeExecutionInput(executionInput, webRequest);
return customizedExecutionInput.thenCompose(graphQL::executeAsync);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy