diff --git a/packages/core/content-manager/server/services/entity-manager.js b/packages/core/content-manager/server/services/entity-manager.js index 8295cbcc78..f26599d5e8 100644 --- a/packages/core/content-manager/server/services/entity-manager.js +++ b/packages/core/content-manager/server/services/entity-manager.js @@ -83,19 +83,29 @@ module.exports = ({ strapi }) => ({ return entity; }, + /** + * Some entity manager functions may return multiple entites or one entity. + * This function maps the response in both cases + * @param {Array|Object|null} entities + * @param {string} uid + */ + async mapEntitesResponse(entities, uid) { + if (entities?.results) { + const mappedResults = await mapAsync(entities.results, (entity) => + this.mapEntity(entity, uid) + ); + return { ...entities, results: mappedResults }; + } + // if entity is single type + return this.mapEntity(entities, uid); + }, + async find(opts, uid) { const params = { ...opts, populate: getDeepPopulate(uid) }; const entities = await strapi.entityService.findMany(uid, params); - if (!entities) { - return entities; - } - - const mappedResults = await mapAsync(entities.results || [entities], (entity) => - this.mapEntity(entity, uid) - ); - return { ...entities, results: mappedResults }; + return this.mapEntitesResponse(entities, uid); }, async findPage(opts, uid) { @@ -103,14 +113,7 @@ module.exports = ({ strapi }) => ({ const entities = await strapi.entityService.findPage(uid, params); - if (!entities) { - return entities; - } - - const mappedResults = await mapAsync(entities.results || [entities], (entity) => - this.mapEntity(entity, uid) - ); - return { ...entities, results: mappedResults }; + return this.mapEntitesResponse(entities, uid); }, async findWithRelationCountsPage(opts, uid) { @@ -119,14 +122,7 @@ module.exports = ({ strapi }) => ({ const entities = await strapi.entityService.findWithRelationCountsPage(uid, params); - if (!entities) { - return entities; - } - - const mappedResults = await mapAsync(entities.results || [entities], (entity) => - this.mapEntity(entity, uid) - ); - return { ...entities, results: mappedResults }; + return this.mapEntitesResponse(entities, uid); }, async findOneWithCreatorRolesAndCount(id, uid) {