use of org.kie.kogito.persistence.api.query.AttributeSort in project kogito-apps by kiegroup.
the class GraphQLQueryOrderByParser method apply.
@Override
public List<AttributeSort> apply(DataFetchingEnvironment env) {
if (env == null) {
return emptyList();
}
Optional<Argument> sortByArgument = env.getMergedField().getArguments().stream().filter(a -> "orderBy".equals(a.getName())).findFirst();
if (sortByArgument.isPresent()) {
Value value = sortByArgument.get().getValue();
if (value instanceof ObjectValue) {
return ((ObjectValue) value).getObjectFields().stream().flatMap(mapSortBy(env)).collect(toList());
}
if (value instanceof VariableReference) {
VariableReference variable = (VariableReference) value;
Map<String, Object> sort = (Map<String, Object>) env.getVariables().get(variable.getName());
return sort.entrySet().stream().flatMap(mapSortBy()).collect(toList());
}
}
return emptyList();
}
Aggregations