fix test and add wrapResult support

This commit is contained in:
Boegie19 2023-06-30 14:55:47 +02:00
parent b29e20c7b5
commit 3fdbbfc203
2 changed files with 21 additions and 5 deletions

View File

@ -37,6 +37,7 @@ const singleTypeModel = {
localized: true,
},
},
attributes: {}
};
const models = {
@ -355,6 +356,7 @@ describe('Entity service decorator', () => {
};
const defaultService = {
wrapResult: jest.fn((input) => Promise.resolve(input)),
wrapParams: jest.fn(() => Promise.resolve(entry)),
findMany: jest.fn(() => Promise.resolve(entry)),
};

View File

@ -80,8 +80,19 @@ const assignValidLocale = async (data) => {
*/
const decorator = (service) => ({
/**
* Wraps result
* @param {object} params - Query options object (params, data, files, populate)
* @param {object} ctx - Query context
* @param {object} ctx.model - Model that is being used
*/
async wrapResult(params = {}, ctx = {}) {
return service.wrapResult.call(this, params, ctx);
},
/**
* Wraps query options. In particular will add default locale to query params
* @param {object} opts - Query options object (params, data, files, populate)
* @param {object} params - Query options object (params, data, files, populate)
* @param {object} ctx - Query context
* @param {object} ctx.model - Model that is being used
*/
@ -156,7 +167,7 @@ const decorator = (service) => ({
* @param {string} uid - Model uid
* @param {object} opts - Query options object (params, data, files, populate)
*/
async findMany(uid, opts) {
async findMany(uid, opts = {}) {
const model = strapi.getModel(uid);
const { isLocalizedContentType } = getService('content-types');
@ -170,9 +181,12 @@ const decorator = (service) => ({
if (kind === 'singleType') {
if (opts[LOCALE_QUERY_FILTER] === 'all') {
// TODO Fix so this won't break lower lying find many wrappers
const wrappedParams = await this.wrapParams(opts, { uid, action: 'findMany' }) || {};
const query = transformParamsToQuery(model, wrappedParams);
return strapi.db.query(uid).findMany(query);
const wrappedParams = await this.wrapParams(opts, { uid, action: 'findMany' });
console.log("ABC")
console.log(wrappedParams)
const query = transformParamsToQuery(uid, wrappedParams);
const entities = await strapi.db.query(uid).findMany(query);
return this.wrapResult(entities, { uid, action: 'findMany' });
}
// This one gets transformed into a findOne on a lower layer