84 lines
1.9 KiB
JavaScript
Raw Normal View History

'use strict';
const _ = require('lodash');
/**
* A set of functions called "actions" for `ContentManager`
*/
module.exports = {
fetchAll(model, query, params = {}) {
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,
}
: filters;
2018-05-23 11:27:39 +02:00
return strapi.entityService.find(
{
params: { ...queryFilter, ...params },
populate,
},
{ model }
);
2018-06-13 17:56:41 +02:00
},
fetch(model, id, config = {}) {
const { params = {}, populate } = config;
return strapi.entityService.findOne(
{
params: { ...params, id },
populate,
},
{ model }
);
},
count(params, query) {
const { model } = params;
const { ...filters } = query;
return strapi.entityService.count({ params: filters }, { model });
},
create({ data, files }, { model } = {}) {
return strapi.entityService.create({ data, files }, { model });
},
edit(params, { data, files }, { model } = {}) {
return strapi.entityService.update({ params, data, files }, { model });
},
delete(model, id, params) {
return strapi.entityService.delete({ params: { _where: [{ id }, params] } }, { model });
},
deleteMany(model, query, params) {
2019-11-15 11:49:32 +01:00
const { primaryKey } = strapi.query(model);
return strapi.entityService.delete(
{
params: {
_limit: 100,
_where: [{ [`${primaryKey}_in`]: Object.values(query) }, params],
},
},
{ model }
);
},
search(model, query, params) {
return strapi.entityService.search({ params: { ...query, ...params } }, { model });
},
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;
return strapi.entityService.countSearch({ params: { _q } }, { model });
},
};