mirror of
https://github.com/strapi/strapi.git
synced 2025-10-17 11:08:14 +00:00
Adapt Services to the new Mongoose API
This commit is contained in:
parent
328f09da29
commit
e8c92fc3d7
@ -14,11 +14,11 @@ module.exports = {
|
|||||||
* @return {Object|Array}
|
* @return {Object|Array}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
find: async (ctx) => {
|
find: async (ctx, next, { populate } = {}) => {
|
||||||
if (ctx.query._q) {
|
if (ctx.query._q) {
|
||||||
return strapi.services.<%= id %>.search(ctx.query);
|
return strapi.services.<%= id %>.search(ctx.query);
|
||||||
} else {
|
} else {
|
||||||
return strapi.services.<%= id %>.fetchAll(ctx.query);
|
return strapi.services.<%= id %>.fetchAll(ctx.query, populate);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
// Public dependencies.
|
// Public dependencies.
|
||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const { Builder, Query } = require('strapi-utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
@ -17,22 +18,13 @@ module.exports = {
|
|||||||
* @return {Promise}
|
* @return {Promise}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fetchAll: (params) => {
|
fetchAll: (params, populate) => {
|
||||||
// Convert `params` object to filters compatible with Mongo.
|
const filter = new Builder(<%= globalID %>, params).convert();
|
||||||
const filters = strapi.utils.models.convertParams('<%= globalID.toLowerCase() %>', params);
|
|
||||||
// Select field to populate.
|
|
||||||
const populate = <%= globalID %>.associations
|
|
||||||
.filter(ast => ast.autoPopulate !== false)
|
|
||||||
.map(ast => ast.alias)
|
|
||||||
.join(' ');
|
|
||||||
|
|
||||||
return <%= globalID %>
|
return new Query(<%= globalID %>)
|
||||||
.find()
|
.find(filter)
|
||||||
.where(filters.where)
|
.populate(populate)
|
||||||
.sort(filters.sort)
|
.execute();
|
||||||
.skip(filters.start)
|
|
||||||
.limit(filters.limit)
|
|
||||||
.populate(filters.populate || populate);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -60,12 +52,11 @@ module.exports = {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
count: (params) => {
|
count: (params) => {
|
||||||
// Convert `params` object to filters compatible with Mongo.
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
const filters = strapi.utils.models.convertParams('<%= globalID.toLowerCase() %>', params);
|
const filter = new Builder(<%= globalID %>, params).convert();
|
||||||
|
return new Query(<%= globalID %>)
|
||||||
return <%= globalID %>
|
.count(filter)
|
||||||
.countDocuments()
|
.execute();
|
||||||
.where(filters.where);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,21 +1,25 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const { Builder, Query } = require('strapi-utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
find: async function (params, populate, raw = false) {
|
find: async function (params, populate) {
|
||||||
const query = this
|
const model = this;
|
||||||
.find(params.where)
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
.limit(Number(params.limit))
|
const filter = new Builder(model, params).convert();
|
||||||
.sort(params.sort)
|
|
||||||
.skip(Number(params.skip))
|
|
||||||
.populate(populate || this.associations.map(x => x.alias).join(' '));
|
|
||||||
|
|
||||||
return raw ? query.lean() : query;
|
return new Query(model)
|
||||||
|
.find(filter)
|
||||||
|
.populate(populate)
|
||||||
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
count: async function (params) {
|
count: async function (params) {
|
||||||
return Number(await this
|
const model = this;
|
||||||
.where(params.where)
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
.countDocuments());
|
const filter = new Builder(model, params).convert();
|
||||||
|
return new Query(model)
|
||||||
|
.count(filter)
|
||||||
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
search: async function (params, populate) { // eslint-disable-line no-unused-vars
|
search: async function (params, populate) { // eslint-disable-line no-unused-vars
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const { Builder, Query } = require('strapi-utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
find: async function (params = {}, populate) {
|
find: async function (params, populate) {
|
||||||
return this
|
const model = this;
|
||||||
.find(params.where)
|
const filter = new Builder(model, params).convert();
|
||||||
.limit(Number(params.limit))
|
|
||||||
.sort(params.sort)
|
return new Query(model)
|
||||||
.skip(Number(params.start))
|
.find(filter)
|
||||||
.populate(populate || this.associations.map(x => x.alias).join(' '))
|
.populate(populate)
|
||||||
.lean();
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
count: async function (params = {}) {
|
count: async function (params) {
|
||||||
return Number(await this
|
const model = this;
|
||||||
.countDocuments(params));
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
|
const filter = new Builder(model, params).convert();
|
||||||
|
return new Query(model)
|
||||||
|
.count(filter)
|
||||||
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
findOne: async function (params, populate) {
|
findOne: async function (params, populate) {
|
||||||
|
@ -1,19 +1,24 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const { Builder, Query } = require('strapi-utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
find: async function (params = {}, populate) {
|
find: async function (params, populate) {
|
||||||
return this
|
const model = this;
|
||||||
.find(params.where)
|
const filter = new Builder(model, params).convert();
|
||||||
.limit(Number(params.limit))
|
|
||||||
.sort(params.sort)
|
return new Query(model)
|
||||||
.skip(Number(params.start))
|
.find(filter)
|
||||||
.populate(populate || this.associations.map(x => x.alias).join(' '))
|
.populate(populate)
|
||||||
.lean();
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
count: async function (params = {}) {
|
count: async function (params) {
|
||||||
return Number(await this
|
const model = this;
|
||||||
.countDocuments(params));
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
|
const filter = new Builder(model, params).convert();
|
||||||
|
return new Query(model)
|
||||||
|
.count(filter)
|
||||||
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
findOne: async function (params, populate) {
|
findOne: async function (params, populate) {
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
|
const { Builder, Query } = require('strapi-utils');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
find: async function (params = {}, populate) {
|
find: async function (params, populate) {
|
||||||
return this
|
const model = this;
|
||||||
.find(params.where)
|
const filter = new Builder(model, params).convert();
|
||||||
.limit(Number(params.limit))
|
|
||||||
.sort(params.sort)
|
return new Query(model)
|
||||||
.skip(Number(params.skip))
|
.find(filter)
|
||||||
.populate(populate || this.associations.map(x => x.alias).join(' '))
|
.populate(populate)
|
||||||
.lean();
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
count: async function (params = {where: {}}) {
|
count: async function (params) {
|
||||||
return Number(await this
|
const model = this;
|
||||||
.countDocuments()
|
// Convert `params` object to filter compatible with Mongo.
|
||||||
.where(params.where));
|
const filter = new Builder(model, params).convert();
|
||||||
|
return new Query(model)
|
||||||
|
.count(filter)
|
||||||
|
.execute();
|
||||||
},
|
},
|
||||||
|
|
||||||
findOne: async function (params, populate) {
|
findOne: async function (params, populate) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user