in templates/JSResolverOCHTTPS.js [212:298]
function getSchemaQueryInfo(name) {
const r = {
type: '', // rename functionType
name: name,
returnType: '',
returnTypeAlias: '',
pathName: '',
returnIsArray: false,
graphQuery: null,
args: [],
graphDBIdArgName: '',
argOptionsLimit: null,
argOptionsOffset: null,
argOptionsOrderBy: null,
};
schemaDataModel.definitions.forEach(def => {
if (def.kind != 'ObjectTypeDefinition') {
return;
}
if (!(def.name.value === 'Query' || def.name.value === 'Mutation')) {
return;
}
def.fields.forEach(field => {
if (field.name.value != name) {
return;
}
r.type = def.name.value;
r.name = field.name.value;
// Return type
if (field.type.kind === 'ListType') {
r.returnIsArray = true;
r.returnType = field.type.type.name.value;
}
if (field.type.kind === 'NamedType') {
r.returnIsArray = false;
r.returnType = field.type.name.value;
}
if (field.type.kind === 'NonNullType') {
if (field.type.type.kind === 'NamedType') {
r.returnIsArray = false;
r.returnType = field.type.type.name.value;
}
}
r.returnTypeAlias = getTypeAlias(r.returnType);
r.pathName = r.name + '_' + r.returnType;
// graphQuery
if (field.directives.length > 0) {
field.directives.forEach(directive => {
if (directive.name.value === 'graphQuery' || directive.name.value === 'Cypher' || directive.name.value === 'cypher')
r.graphQuery = directive.arguments[0].value.value;
});
}
// args
if (field.arguments.length > 0) {
field.arguments.forEach(arg => {
if (arg.type.kind === 'NamedType') {
getSchemaInputTypeArgs(arg.type.name.value, r);
} else if (arg.type.kind === 'NonNullType') {
getSchemaInputTypeArgs(arg.type.type.name.value, r);
} else if (arg.type.type.name.value === 'String' || arg.type.type.name.value === 'Int' || arg.type.type.name.value === 'ID') {
r.args.push({name: arg.name.value, type: arg.type.type.name.value});
} else {
// GraphQL type input
}
});
}
});
});
if (r.returnType == '') {
console.error('GraphQL query not found.');
}
return r;
}