Pass easier-to-understand options instead of arguments to Mutation.composeMutationResolver() and Query.composeQueryResolver()

This commit is contained in:
Don Masakayan 2019-09-11 21:55:26 +08:00
parent 79a253f5bc
commit d3a968aa62
4 changed files with 42 additions and 17 deletions

View File

@ -19,7 +19,7 @@ module.exports = {
* @return Promise or Error. * @return Promise or Error.
*/ */
composeMutationResolver: function(_schema, plugin, name, action) { composeMutationResolver: function({ _schema, plugin, name, action }) {
// Extract custom resolver or type description. // Extract custom resolver or type description.
const { resolver: handler = {} } = _schema; const { resolver: handler = {} } = _schema;

View File

@ -69,7 +69,7 @@ module.exports = {
* @return Promise or Error. * @return Promise or Error.
*/ */
composeQueryResolver: function(_schema, plugin, name, isSingular) { composeQueryResolver: function({ _schema, plugin, name, isSingular }) {
const params = { const params = {
model: name, model: name,
}; };

View File

@ -326,11 +326,21 @@ const buildShadowCRUD = (models, plugin) => {
const queries = { const queries = {
singular: singular:
_.get(resolver, `Query.${singularName}`) !== false _.get(resolver, `Query.${singularName}`) !== false
? Query.composeQueryResolver(_schema, plugin, name, true) ? Query.composeQueryResolver({
_schema,
plugin,
name,
isSingular: true,
})
: null, : null,
plural: plural:
_.get(resolver, `Query.${pluralName}`) !== false _.get(resolver, `Query.${pluralName}`) !== false
? Query.composeQueryResolver(_schema, plugin, name, false) ? Query.composeQueryResolver({
_schema,
plugin,
name,
isSingular: false,
})
: null, : null,
}; };
@ -376,15 +386,30 @@ const buildShadowCRUD = (models, plugin) => {
const mutations = { const mutations = {
create: create:
_.get(resolver, `Mutation.create${capitalizedName}`) !== false _.get(resolver, `Mutation.create${capitalizedName}`) !== false
? Mutation.composeMutationResolver(_schema, plugin, name, 'create') ? Mutation.composeMutationResolver({
_schema,
plugin,
name,
action: 'create',
})
: null, : null,
update: update:
_.get(resolver, `Mutation.update${capitalizedName}`) !== false _.get(resolver, `Mutation.update${capitalizedName}`) !== false
? Mutation.composeMutationResolver(_schema, plugin, name, 'update') ? Mutation.composeMutationResolver({
_schema,
plugin,
name,
action: 'update',
})
: null, : null,
delete: delete:
_.get(resolver, `Mutation.delete${capitalizedName}`) !== false _.get(resolver, `Mutation.delete${capitalizedName}`) !== false
? Mutation.composeMutationResolver(_schema, plugin, name, 'delete') ? Mutation.composeMutationResolver({
_schema,
plugin,
name,
action: 'delete',
})
: null, : null,
}; };

View File

@ -228,22 +228,22 @@ const schemaBuilder = {
const [name, action] = acc[type][resolver].split('.'); const [name, action] = acc[type][resolver].split('.');
const normalizedName = _.toLower(name); const normalizedName = _.toLower(name);
acc[type][resolver] = Mutation.composeMutationResolver( acc[type][resolver] = Mutation.composeMutationResolver({
strapi.plugins.graphql.config._schema.graphql, _schema: strapi.plugins.graphql.config._schema.graphql,
plugin, plugin,
normalizedName, name: normalizedName,
action action,
); });
break; break;
} }
case 'Query': case 'Query':
default: default:
acc[type][resolver] = Query.composeQueryResolver( acc[type][resolver] = Query.composeQueryResolver({
strapi.plugins.graphql.config._schema.graphql, _schema: strapi.plugins.graphql.config._schema.graphql,
plugin, plugin,
resolver, name: resolver,
'force' // Avoid singular/pluralize and force query name. isSingular: 'force', // Avoid singular/pluralize and force query name.
); });
break; break;
} }
} }