in templates/JSResolverOCHTTPS.js [356:446]
function getSchemaFieldInfo(typeName, fieldName, pathName) {
const r = {
name: fieldName,
alias: '',
type: '',
isSchemaType: false,
pathName: '',
isId: false,
isArray: false,
isRequired: false,
graphQuery: null,
relationship: null,
args:[],
graphDBIdArgName: '',
argOptionsLimit: null,
argOptionsOffset: null,
argOptionsOrderBy: null,
}
schemaDataModel.definitions.forEach(def => {
if (def.kind === 'ObjectTypeDefinition') {
if (def.name.value === typeName) {
def.fields.forEach(field => {
if (field.name.value === fieldName) {
r.name = field.name.value;
r.alias = r.name;
if (field.type.kind === 'ListType') {
r.isArray = true;
r.type = field.type.type.name.value;
}
if (field.type.kind === 'NamedType') {
r.isArray = false;
r.type = field.type.name.value;
}
if (field.type.kind === 'NonNullType') {
r.isArray = false;
r.type = field.type.type.name.value;
}
r.pathName = pathName + '_' + r.name;
if (field.directives.length > 0) {
field.directives.forEach(directive => {
if (directive.name.value === 'alias') {
r.alias = directive.arguments[0].value.value;
}
if (directive.name.value === 'graphQuery' || directive.name.value === 'Cypher' || directive.name.value === 'cypher') {
r.graphQuery = directive.arguments[0].value.value;
if (fieldName == 'id') {
r.graphQuery = r.graphQuery.replace(' as id', '');
r.graphQuery = r.graphQuery.replace(' AS id', '');
}
}
if (directive.name.value === 'id')
r.graphDBIdArgName = r.name;
});
}
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
}
});
}
}
});
}
}
});
schemaDataModel.definitions.forEach(def => {
if (def.kind === 'ObjectTypeDefinition') {
if (def.name.value === r.type) {
r.isSchemaType = true;
}
}
});
if (r.type == '') {
console.error('GraphQL field not found.');
}
return r;
}