2021-08-24 12:10:47 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const { pick } = require('lodash/fp');
|
|
|
|
|
|
|
|
const pickCreateArgs = pick(['params', 'data', 'files']);
|
|
|
|
|
|
|
|
module.exports = ({ strapi }) => ({
|
2021-09-22 14:39:36 +02:00
|
|
|
buildMutationsResolvers({ contentType }) {
|
2021-08-24 12:10:47 +02:00
|
|
|
const { uid } = contentType;
|
|
|
|
|
|
|
|
return {
|
2021-09-01 12:06:51 +02:00
|
|
|
async create(parent, args) {
|
2021-08-24 12:10:47 +02:00
|
|
|
// todo[v4]: Might be interesting to generate dynamic yup schema to validate payloads with more complex checks (on top of graphql validation)
|
|
|
|
const params = pickCreateArgs(args);
|
|
|
|
|
|
|
|
// todo[v4]: Sanitize args to only keep params / data / files (or do it in the base resolver)
|
|
|
|
return strapi.entityService.create(uid, params);
|
|
|
|
},
|
|
|
|
|
2021-09-01 12:06:51 +02:00
|
|
|
async update(parent, args) {
|
2021-08-24 12:10:47 +02:00
|
|
|
const { id, data } = args;
|
|
|
|
|
|
|
|
return strapi.entityService.update(uid, id, { data });
|
|
|
|
},
|
|
|
|
|
2021-09-01 12:06:51 +02:00
|
|
|
async delete(parent, args) {
|
2021-08-24 12:10:47 +02:00
|
|
|
const { id, ...rest } = args;
|
|
|
|
|
|
|
|
return strapi.entityService.delete(uid, id, rest);
|
|
|
|
},
|
|
|
|
};
|
|
|
|
},
|
|
|
|
});
|