in data-index/data-index-service/data-index-service-common/src/main/java/org/kie/kogito/index/service/graphql/GraphQLSchemaManagerImpl.java [73:157]
public GraphQLSchema createSchema() {
TypeDefinitionRegistry typeDefinitionRegistry = new TypeDefinitionRegistry();
typeDefinitionRegistry.merge(loadSchemaDefinitionFile("basic.schema.graphqls"));
typeDefinitionRegistry.merge(loadSchemaDefinitionFile("domain.schema.graphqls"));
addCountQueries(typeDefinitionRegistry);
addJsonQueries(typeDefinitionRegistry);
loadAdditionalMutations(typeDefinitionRegistry);
RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring()
.scalar(ExtendedScalars.Json)
.type("Query", builder -> {
builder.dataFetcher("ProcessDefinitions", this::getProcessDefinitionsValues);
builder.dataFetcher("ProcessInstances", this::getProcessInstancesValues);
builder.dataFetcher("UserTaskInstances", this::getUserTaskInstancesValues);
builder.dataFetcher("Jobs", this::getJobsValues);
addCountQueries(builder);
return builder;
})
.type("Mutation", builder -> {
builder.dataFetcher("ProcessInstanceAbort", this::abortProcessInstance);
builder.dataFetcher("ProcessInstanceRetry", this::retryProcessInstance);
builder.dataFetcher("ProcessInstanceSkip", this::skipProcessInstance);
builder.dataFetcher("ProcessInstanceUpdateVariables", this::updateProcessInstanceVariables);
builder.dataFetcher("NodeInstanceTrigger", this::triggerNodeInstance);
builder.dataFetcher("NodeInstanceRetrigger", this::retriggerNodeInstance);
builder.dataFetcher("NodeInstanceCancel", this::cancelNodeInstance);
builder.dataFetcher("JobCancel", this::cancelJob);
builder.dataFetcher("JobReschedule", this::rescheduleJob);
builder.dataFetcher("UserTaskInstanceUpdate", this::updateUserTaskInstance);
builder.dataFetcher("UserTaskInstanceCommentCreate", this::createTaskInstanceComment);
builder.dataFetcher("UserTaskInstanceAttachmentCreate", this::createTaskInstanceAttachment);
builder.dataFetcher("UserTaskInstanceCommentUpdate", this::updateUserTaskComment);
builder.dataFetcher("UserTaskInstanceCommentDelete", this::deleteUserTaskComment);
builder.dataFetcher("UserTaskInstanceAttachmentUpdate", this::updateUserTaskAttachment);
builder.dataFetcher("UserTaskInstanceAttachmentDelete", this::deleteUserTaskAttachment);
loadAdditionalMutations(builder);
return builder;
})
.type("ProcessDefinition", builder -> {
builder.dataFetcher("source", e -> getProcessDefinitionSource(e.getSource()));
builder.dataFetcher("nodes", e -> getProcessDefinitionNodes(e.getSource()));
builder.dataFetcher("serviceUrl", this::getProcessDefinitionServiceUrl);
return builder;
})
.type("ProcessInstance", builder -> {
builder.dataFetcher("parentProcessInstance", this::getParentProcessInstanceValue);
builder.dataFetcher("childProcessInstances", this::getChildProcessInstancesValues);
builder.dataFetcher("serviceUrl", this::getProcessInstanceServiceUrl);
builder.dataFetcher("diagram", this::getProcessInstanceDiagram);
builder.dataFetcher("source", this::getProcessInstanceSource);
builder.dataFetcher("nodeDefinitions", this::getProcessInstanceNodes);
builder.dataFetcher("definition", this::getProcessDefinition);
builder.dataFetcher("executionSummary", this::getExecutionSummary);
return builder;
})
.type("UserTaskInstance", builder -> {
builder.dataFetcher("schema", this::getUserTaskInstanceSchema);
return builder;
})
.type("ProcessInstanceMeta", builder -> {
builder.dataFetcher("serviceUrl", this::getProcessInstanceJsonServiceUrl);
return builder;
})
.type("ProcessInstanceState", builder -> {
builder.enumValues(name -> ProcessInstanceState.valueOf(name).ordinal());
return builder;
})
.type("Subscription", builder -> {
builder.dataFetcher(PROCESS_INSTANCE_ADDED, getProcessInstanceAddedDataFetcher());
builder.dataFetcher(PROCESS_INSTANCE_UPDATED, getProcessInstanceUpdatedDataFetcher());
builder.dataFetcher(USER_TASK_INSTANCE_ADDED, getUserTaskInstanceAddedDataFetcher());
builder.dataFetcher(USER_TASK_INSTANCE_UPDATED, getUserTaskInstanceUpdatedDataFetcher());
builder.dataFetcher(JOB_ADDED, getJobAddedDataFetcher());
builder.dataFetcher(JOB_UPDATED, getJobUpdatedDataFetcher());
return builder;
})
.scalar(getDateTimeScalarType())
.scalar(ExtendedScalars.GraphQLBigDecimal)
.scalar(ExtendedScalars.GraphQLLong)
.scalar(ExtendedScalars.Json)
.build();
SchemaGenerator schemaGenerator = new SchemaGenerator();
return schemaGenerator.makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
}