GraphQL alias for mutations in classConfigs (#6258)

* mutations

* removed duplicate tests
This commit is contained in:
Old Grandpa
2019-12-04 08:38:28 +03:00
committed by Antonio Davi Macedo Coelho de Castro
parent 917c6718fc
commit 6db040bdec
4 changed files with 144 additions and 49 deletions

View File

@@ -296,6 +296,9 @@ class ParseGraphQLController {
create = null,
update = null,
destroy = null,
createAlias = null,
updateAlias = null,
destroyAlias = null,
...invalidKeys
} = mutation;
if (Object.keys(invalidKeys).length) {
@@ -312,6 +315,15 @@ class ParseGraphQLController {
if (destroy !== null && typeof destroy !== 'boolean') {
return `"mutation.destroy" must be a boolean`;
}
if (createAlias !== null && typeof createAlias !== 'string') {
return `"mutation.createAlias" must be a string`;
}
if (updateAlias !== null && typeof updateAlias !== 'string') {
return `"mutation.updateAlias" must be a string`;
}
if (destroyAlias !== null && typeof destroyAlias !== 'string') {
return `"mutation.destroyAlias" must be a string`;
}
} else {
return `"mutation" must be a valid object`;
}
@@ -380,6 +392,9 @@ export interface ParseGraphQLClassConfig {
update: ?boolean,
// delete is a reserved key word in js
destroy: ?boolean,
createAlias: ?String,
updateAlias: ?String,
destroyAlias: ?String,
};
}

View File

@@ -51,6 +51,9 @@ const load = function(
create: isCreateEnabled = true,
update: isUpdateEnabled = true,
destroy: isDestroyEnabled = true,
createAlias: createAlias = '',
updateAlias: updateAlias = '',
destroyAlias: destroyAlias = '',
} = getParseClassMutationConfig(parseClassConfig);
const {
@@ -60,7 +63,8 @@ const load = function(
} = parseGraphQLSchema.parseClassTypes[className];
if (isCreateEnabled) {
const createGraphQLMutationName = `create${graphQLClassName}`;
const createGraphQLMutationName =
createAlias || `create${graphQLClassName}`;
const createGraphQLMutation = mutationWithClientMutationId({
name: `Create${graphQLClassName}`,
description: `The ${createGraphQLMutationName} mutation can be used to create a new object of the ${graphQLClassName} class.`,
@@ -150,7 +154,8 @@ const load = function(
}
if (isUpdateEnabled) {
const updateGraphQLMutationName = `update${graphQLClassName}`;
const updateGraphQLMutationName =
updateAlias || `update${graphQLClassName}`;
const updateGraphQLMutation = mutationWithClientMutationId({
name: `Update${graphQLClassName}`,
description: `The ${updateGraphQLMutationName} mutation can be used to update an object of the ${graphQLClassName} class.`,
@@ -250,7 +255,8 @@ const load = function(
}
if (isDestroyEnabled) {
const deleteGraphQLMutationName = `delete${graphQLClassName}`;
const deleteGraphQLMutationName =
destroyAlias || `delete${graphQLClassName}`;
const deleteGraphQLMutation = mutationWithClientMutationId({
name: `Delete${graphQLClassName}`,
description: `The ${deleteGraphQLMutationName} mutation can be used to delete an object of the ${graphQLClassName} class.`,