use of graphql.ExceptionWhileDataFetching in project admin-console-beta by connexta.
the class ExecutionStrategyImpl method resolveField.
@Override
protected ExecutionResult resolveField(ExecutionContext executionContext, GraphQLObjectType parentType, Object source, List<Field> fields) {
GraphQLFieldDefinition fieldDef = getFieldDef(executionContext.getGraphQLSchema(), parentType, fields.get(0));
Map<String, Object> argumentValues = valuesResolver.getArgumentValues(fieldDef.getArguments(), fields.get(0).getArguments(), executionContext.getVariables());
DataFetchingEnvironment environment = new DataFetchingEnvironment(source, argumentValues, executionContext.getRoot(), fields, fieldDef.getType(), parentType, executionContext.getGraphQLSchema());
Object resolvedValue = null;
try {
resolvedValue = fieldDef.getDataFetcher().get(environment);
if (resolvedValue instanceof FunctionReport) {
FunctionReport<DataType> report = ((FunctionReport) resolvedValue);
resolvedValue = report.isResultPresent() ? report.result().getValue() : null;
List<Message> msgs = report.messages();
msgs.stream().map(GraphQLErrorMessageWrapper::new).forEach(executionContext::addError);
}
} catch (Exception e) {
LOGGER.info("Exception while fetching data", e);
executionContext.addError(new ExceptionWhileDataFetching(e));
}
return completeValue(executionContext, fieldDef.getType(), fields, resolvedValue);
}
Aggregations