From e538e229f386fde3ebf67ead980b73f2b140b6c5 Mon Sep 17 00:00:00 2001 From: "Josepablo C." Date: Fri, 6 Oct 2023 20:28:12 -0600 Subject: [PATCH] fix(loads): populate company and carrier fields --- lib/Misc.js | 14 ++++++++++++-- lib/Models/companies.model.js | 2 +- sections/cities/services.js | 6 +++--- sections/countries/services.js | 6 +++--- sections/load-attachments/services.js | 6 +++--- sections/loads/services.js | 15 ++++++++++++--- sections/meta-data/services.js | 6 +++--- sections/meta-groups/services.js | 6 +++--- sections/product-categories/services.js | 6 +++--- sections/products/services.js | 6 +++--- sections/public-vehicles/services.js | 4 ++-- sections/states/services.js | 6 +++--- 12 files changed, 51 insertions(+), 32 deletions(-) diff --git a/lib/Misc.js b/lib/Misc.js index 2e1c6df..556d909 100644 --- a/lib/Misc.js +++ b/lib/Misc.js @@ -25,7 +25,7 @@ function getPagination( query ){ return limit; } -async function queryPage( page, elements, model, filter=null, projection=null){ +async function getPage( page, elements, model, filter=null, projection=null){ const skip = elements * page; const total = await model.count( filter ); const list = await model.find( filter , projection, { skip : skip , limit : elements } ); @@ -37,4 +37,14 @@ async function queryPage( page, elements, model, filter=null, projection=null){ } } -module.exports = { getPagination , queryPage }; \ No newline at end of file +async function queryPage(page, elements, model, filter=null, projection=null){ + const skip = elements * page; + const total = await model.count( filter ); + return { + query : model.find( filter , projection, { skip : skip , limit : elements } ), + total : total, + skip : skip + }; +} + +module.exports = { getPagination , getPage, queryPage }; \ No newline at end of file diff --git a/lib/Models/companies.model.js b/lib/Models/companies.model.js index 796b5b6..e976c1a 100644 --- a/lib/Models/companies.model.js +++ b/lib/Models/companies.model.js @@ -62,4 +62,4 @@ const schema = new Schema({ is_hidden: { type: Boolean, default: false }, }); -module.exports = mongoose.model( "branches", schema ); +module.exports = mongoose.model( "companies", schema ); diff --git a/sections/cities/services.js b/sections/cities/services.js index 3f49ac6..d88af2a 100644 --- a/sections/cities/services.js +++ b/sections/cities/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/cities.model.js` ); const getCitiesList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findCitiesList = async(req, res) => { filter = { "city_name" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/countries/services.js b/sections/countries/services.js index bf17fee..ddc4722 100644 --- a/sections/countries/services.js +++ b/sections/countries/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/countries.model.js` ); const getCountriesList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findCountriesList = async(req, res) => { filter = { "country_name" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/load-attachments/services.js b/sections/load-attachments/services.js index 9735bae..5655f10 100644 --- a/sections/load-attachments/services.js +++ b/sections/load-attachments/services.js @@ -1,6 +1,6 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/load-attachments.model.js` ); const UserModel = require( `${ROOT_PATH}/${MODELS_PATH}/users.model.js` ); const LoadsModel = require( `${ROOT_PATH}/${MODELS_PATH}/loads.model.js` ); @@ -32,7 +32,7 @@ const getAttachment = async(req, res) => { const getAttachmentList = async(req, res) => { const filter = await getAuthorizationFilter( req.JWT.payload.sub ); const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; @@ -46,7 +46,7 @@ const getLoadAttachmentList = async(req, res) => { ] }; const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/loads/services.js b/sections/loads/services.js index 814897a..a77f2e5 100644 --- a/sections/loads/services.js +++ b/sections/loads/services.js @@ -3,6 +3,7 @@ const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/loads.model.js` ); const UserModel = require( `${ROOT_PATH}/${MODELS_PATH}/users.model.js` ); +const CompaniesModel = require( `${ROOT_PATH}/${MODELS_PATH}/companies.model.js` ); async function getAuthorizationFilter( userId ){ const user = await UserModel.findById( userId ); @@ -18,8 +19,16 @@ async function getAuthorizationFilter( userId ){ const getLoadsList = async(req, res) => { const filter = await getAuthorizationFilter( req.JWT.payload.sub ); const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model, filter ); - res.send( retVal ); + const query = await queryPage( page , elements, Model, filter ); + const list = await query.query.populate('product') + .populate('company') + .populate('carrier'); + res.send({ + total : query.total, + limit : elements, + skip : query.skip, + data : list + }); }; const getLoad = async(req, res) => { @@ -31,7 +40,7 @@ const getLoad = async(req, res) => { CompanyAccessFilter ] }; - const retVal = await Model.findOne( filter ).populate('product').populate('categories') || {}; + const retVal = await Model.findOne( filter ).populate('product').populate('company').populate('carrier') || {}; res.send( retVal ); }; diff --git a/sections/meta-data/services.js b/sections/meta-data/services.js index 10702ef..aae50c5 100644 --- a/sections/meta-data/services.js +++ b/sections/meta-data/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/meta-data.model.js` ); const getMetaDataList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findMetaDataList = async(req, res) => { filter = { "meta_value" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/meta-groups/services.js b/sections/meta-groups/services.js index d883258..b1e440f 100644 --- a/sections/meta-groups/services.js +++ b/sections/meta-groups/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/meta-groups.model.js` ); const getMetaGroupsList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findMetaGroupsList = async(req, res) => { filter = { "group_label" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/product-categories/services.js b/sections/product-categories/services.js index 5e1f7bc..527e923 100644 --- a/sections/product-categories/services.js +++ b/sections/product-categories/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/product-categories.model.js` ); const getProductCategoriesList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findProductCategoriesList = async(req, res) => { filter = { "name" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/products/services.js b/sections/products/services.js index 7fb5f8c..5a6311c 100644 --- a/sections/products/services.js +++ b/sections/products/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/products.model.js` ); const getProductsList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findProductsList = async(req, res) => { filter = { "name" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); }; diff --git a/sections/public-vehicles/services.js b/sections/public-vehicles/services.js index 69b3ad3..601f341 100644 --- a/sections/public-vehicles/services.js +++ b/sections/public-vehicles/services.js @@ -1,6 +1,6 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/vehicles.model.js` ); const getPublicVehiclesList = async(req, res) => { @@ -18,7 +18,7 @@ const getPublicVehiclesList = async(req, res) => { "status" ]; const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model, filter, select ); + const retVal = await getPage( page , elements, Model, filter, select ); res.send( retVal ); }; diff --git a/sections/states/services.js b/sections/states/services.js index 62ac46c..e45c163 100644 --- a/sections/states/services.js +++ b/sections/states/services.js @@ -1,11 +1,11 @@ "use strict"; const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getPagination , queryPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); +const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/states.model.js` ); const getStatesList = async(req, res) => { const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page , elements, Model ); + const retVal = await getPage( page , elements, Model ); res.send( retVal ); }; @@ -16,7 +16,7 @@ const findStatesList = async(req, res) => { filter = { "state_name" : { $regex: re, $options: 'i' }}; } const { page , elements } = getPagination( req.query ); - const retVal = await queryPage( page, elements, Model, filter ); + const retVal = await getPage( page, elements, Model, filter ); res.send( retVal ); };