2017-12-11 18:23:15 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
const _ = require('lodash');
|
2020-01-08 11:12:41 +01:00
|
|
|
|
2017-12-11 18:23:15 +01:00
|
|
|
/**
|
|
|
|
* A set of functions called "actions" for `ContentManager`
|
|
|
|
*/
|
|
|
|
module.exports = {
|
2019-07-15 16:25:45 +02:00
|
|
|
fetchAll(params, query) {
|
2019-11-15 11:49:32 +01:00
|
|
|
const { query: request, populate, ...filters } = query;
|
2019-03-13 19:27:18 +01:00
|
|
|
|
2019-04-09 16:01:01 +02:00
|
|
|
const queryFilter = !_.isEmpty(request)
|
|
|
|
? {
|
|
|
|
...filters, // Filters is an object containing the limit/sort and start
|
|
|
|
...request,
|
|
|
|
}
|
2019-04-09 12:09:03 +02:00
|
|
|
: filters;
|
2018-05-23 11:27:39 +02:00
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
return strapi.entityService.find(
|
|
|
|
{ params: queryFilter, populate },
|
|
|
|
{ model: params.model }
|
|
|
|
);
|
2018-06-13 17:56:41 +02:00
|
|
|
},
|
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
fetch(params, populate) {
|
|
|
|
const { id, model } = params;
|
|
|
|
|
|
|
|
return strapi.entityService.findOne(
|
|
|
|
{
|
|
|
|
params: {
|
|
|
|
id,
|
|
|
|
},
|
|
|
|
populate,
|
|
|
|
},
|
|
|
|
{ model }
|
|
|
|
);
|
2017-12-11 18:23:15 +01:00
|
|
|
},
|
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
count(params, query) {
|
|
|
|
const { model } = params;
|
|
|
|
const { ...filters } = query;
|
2019-08-01 17:19:49 +02:00
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
return strapi.entityService.count({ params: filters }, { model });
|
2017-12-11 18:23:15 +01:00
|
|
|
},
|
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
create(data, { files, model } = {}) {
|
|
|
|
return strapi.entityService.create({ data, files }, { model });
|
|
|
|
},
|
2019-08-01 08:52:35 +02:00
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
edit(params, data, { model, files } = {}) {
|
|
|
|
return strapi.entityService.update({ params, data, files }, { model });
|
2017-12-11 18:23:15 +01:00
|
|
|
},
|
|
|
|
|
2019-11-15 11:49:32 +01:00
|
|
|
delete(params) {
|
2020-01-08 11:12:41 +01:00
|
|
|
const { id, model } = params;
|
|
|
|
return strapi.entityService.delete({ params: { id } }, { model });
|
2017-12-11 18:23:15 +01:00
|
|
|
},
|
2018-06-05 18:35:19 +02:00
|
|
|
|
2019-07-16 20:11:34 +02:00
|
|
|
deleteMany(params, query) {
|
2018-06-05 18:35:19 +02:00
|
|
|
const { model } = params;
|
2018-06-14 18:27:44 +02:00
|
|
|
|
2019-11-15 11:49:32 +01:00
|
|
|
const { primaryKey } = strapi.query(model);
|
2020-01-08 13:25:44 +01:00
|
|
|
const filter = { [`${primaryKey}_in`]: Object.values(query), _limit: 100 };
|
2018-06-05 18:35:19 +02:00
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
return strapi.entityService.delete({ params: filter }, { model });
|
2019-04-09 12:09:03 +02:00
|
|
|
},
|
2019-07-15 23:16:50 +02:00
|
|
|
|
2019-07-15 16:25:45 +02:00
|
|
|
search(params, query) {
|
2019-07-26 10:57:27 +02:00
|
|
|
const { model } = params;
|
2019-07-15 16:25:45 +02:00
|
|
|
|
2020-01-08 11:12:41 +01:00
|
|
|
return strapi.entityService.search({ params: query }, { model });
|
2019-07-15 16:25:45 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
countSearch(params, query) {
|
2019-07-26 10:57:27 +02:00
|
|
|
const { model } = params;
|
2019-11-15 11:49:32 +01:00
|
|
|
const { _q } = query;
|
2020-01-08 11:12:41 +01:00
|
|
|
|
|
|
|
return strapi.entityService.countSearch({ params: { _q } }, { model });
|
2019-07-15 16:25:45 +02:00
|
|
|
},
|
2017-12-11 18:23:15 +01:00
|
|
|
};
|