Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return this.service.create(objectName, args.input, {
publishEvent: resolverElement.config.subCreate
}, context)
}
}
if (resolverElement.config.update) {
const updateField = getFieldName(resolverElement.name, GraphbackOperationType.UPDATE);
// tslint:disable-next-line: no-any
resolvers.Mutation[updateField] = (parent: any, args: any, context: any) => {
return this.service.update(objectName, args.id, args.input, {
publishEvent: resolverElement.config.subUpdate
}, context)
}
}
if (resolverElement.config.delete) {
const deleteField = getFieldName(resolverElement.name, GraphbackOperationType.DELETE);
// tslint:disable-next-line: no-any
resolvers.Mutation[deleteField] = (parent: any, args: any, context: any) => {
return this.service.delete(objectName, args.id, args.input, {
publishEvent: resolverElement.config.subDelete
}, context)
}
}
if (resolverElement.config.findAll) {
const findAllField = getFieldName(resolverElement.name, GraphbackOperationType.FIND_ALL, 's');
// tslint:disable-next-line: no-any
resolvers.Query[findAllField] = (parent: any, args: any, context: any) => {
return this.service.findAll(objectName, context)
}
}
if (resolverElement.config.find) {
export const deleteMutation = (t: InputModelTypeContext, ) => {
const fieldName = getFieldName(t.name, GraphbackOperationType.DELETE)
return `mutation ${fieldName}($id: ID!) {
${fieldName}(id: $id)
}
`
}
const deleteMutationTS = (t: InputModelTypeContext, imports: string) => {
const fieldName = getFieldName(t.name, GraphbackOperationType.DELETE)
return `${imports}
export const ${fieldName} = gql\`
${deleteMutation(t)}
\$\{${t.name}Fragment}
\`
`
}
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.CREATE),
implementation: createMutation(t)
})
}
if (t.config.update) {
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.UPDATE),
implementation: updateMutation(t)
})
}
if (t.config.delete) {
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.DELETE),
implementation: deleteMutation(t)
})
}
})
.map((t: InputModelTypeContext) => {
const fieldName = getFieldName(t.name, GraphbackOperationType.DELETE)
return `${fieldName}(id: ID!): ID!`
})
}
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.CREATE),
implementation: createMutationTS(t, imports)
})
}
if (t.config.update) {
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.UPDATE),
implementation: updateMutationTS(t, imports)
})
}
if (t.config.delete) {
mutations.push({
name: getFieldName(t.name, GraphbackOperationType.DELETE),
implementation: deleteMutationTS(t, imports)
})
}
})
const deleteResolver = (t: InputModelTypeContext): string | undefined => {
if (t.config.delete) {
return templates.deleteTemplate(getFieldName(t.name, GraphbackOperationType.DELETE), t.name, t.config.subDelete)
}
return undefined
}
public subscribeToDelete(name: string, context?: GraphbackRuntimeContext): AsyncIterator | undefined {
if (!this.pubSub) {
this.logger.log(`Cannot subscribe to events for ${name}`)
throw Error(`Missing PubSub implementation in CRUDService`);
}
const deleteSubKey = subscriptionTopicMapping(GraphbackOperationType.DELETE, name);
return this.pubSub.asyncIterator(deleteSubKey)
}