diff --git a/helpers/controller.helper.js b/helpers/controller.helper.js index 7fdb288..83990f9 100644 --- a/helpers/controller.helper.js +++ b/helpers/controller.helper.js @@ -86,7 +86,7 @@ function setPaginationInfo(totalCount, res) { if (params.paginate.hasNextPages(count)) { const nextPage = params.paginate.href(); - res.set('Link', nextPage + '; rel=next'); + res.set('Link-Next-Page', nextPage + '; rel=next'); res.set('Pagination-Next-Page', true); } else { res.set('Pagination-Next-Page', false); diff --git a/helpers/service.helper.js b/helpers/service.helper.js index 50c6f5c..a353f82 100644 --- a/helpers/service.helper.js +++ b/helpers/service.helper.js @@ -151,6 +151,11 @@ const generateService = (model, extraMethods = {}, options = defaultOptions) => return defaultService.fetchAssociation(params, context) } else { const findOptions = parseParamsToFindOptions(params); + + // Necesario para el cálculo del count + // https://github.com/sequelize/sequelize/issues/10557 + findOptions.distinct = true; + const result = await model.scope(context.scopes).findAndCountAll(findOptions); if (extraMethods.afterFetchAll) { diff --git a/modules/speakers/speaker.routes.js b/modules/speakers/speaker.routes.js index b667751..0bb2935 100644 --- a/modules/speakers/speaker.routes.js +++ b/modules/speakers/speaker.routes.js @@ -23,7 +23,7 @@ routes.get('/speakers', PaginateMiddleware.middleware(), SortMiddleware.middleware({ default: "name" }), speakerController.find({ - scopes: ['defaultScope', 'includeValues'], + scopes: ['defaultScope', 'includeValues', 'includeMultimedias'], }) ); diff --git a/modules/speakers/speaker.service.js b/modules/speakers/speaker.service.js index 8957886..ff74d15 100644 --- a/modules/speakers/speaker.service.js +++ b/modules/speakers/speaker.service.js @@ -18,7 +18,7 @@ const extraMethods = { rows = rows.map(speaker => speakerComposer(speaker, context)); return { - count: rows.length, + count: result.count, rows: rows } },