From eb08f4abb88e2001d425c57712ea0671b1bbe31c Mon Sep 17 00:00:00 2001 From: Josepablo C Date: Tue, 2 Apr 2024 10:35:26 -0600 Subject: [PATCH] fix(loads): FindList requires access to any Load --- src/apps/private/loads/services.js | 41 ++++++++++++++++++------------ 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/apps/private/loads/services.js b/src/apps/private/loads/services.js index f7e54dc..fb8d2fa 100644 --- a/src/apps/private/loads/services.js +++ b/src/apps/private/loads/services.js @@ -1,8 +1,8 @@ "use strict"; -const { ROOT_PATH, LIB_PATH, MODELS_PATH, HANDLERS_PATH } = process.env; -const { getModel } = require( `${ROOT_PATH}/${MODELS_PATH}` ); +const { ROOT_PATH, LIB_PATH } = process.env; +const { getModel } = require( '../../../lib/Models' ); const { getPagination } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` ); -const { GenericHandler } = require( `${ROOT_PATH}/${HANDLERS_PATH}/Generic.handler.js` ); +const { GenericHandler } = require( '../../../lib/Handlers//Generic.handler.js' ); const Model = getModel('loads'); const ProposalsModel = getModel('proposals'); @@ -11,8 +11,26 @@ const generic = new GenericHandler( Model, null, populate_list ); function getAndFilterList( query ){ const filter_list = []; - const { status, posted_by_name, load_status, published_date, loaded_date, transit_date, categories, product, shipment_code } = query; + const { + company, + carrier, + vehicle, + driver, + status, + posted_by_name, + load_status, + published_date, + loaded_date, + transit_date, + categories, + product, + shipment_code + } = query; + if( company ){ filter_list.push( { company } ); } + if( carrier ){ filter_list.push( { carrier } ); } + if( vehicle ){ filter_list.push( { vehicle } ); } + if( driver ){ filter_list.push( { driver } ); } if( status ){ filter_list.push( { status } ); } if( posted_by_name ) { filter_list.push({ posted_by_name }); } if( load_status ) { filter_list.push({ load_status }); } @@ -23,28 +41,20 @@ function getAndFilterList( query ){ if( product ) { filter_list.push({ product }); } if( shipment_code ) { filter_list.push({ shipment_code }); } - if( filter_list.length == 0 ){ return null; } return filter_list; } -async function findLoads( companyId , query ){ +async function findLoads( query ){ const { page, elements } = getPagination( query ); const andFilterList = getAndFilterList( query ); let filter; if( andFilterList ){ - andFilterList.push({$or : [ - { company : companyId }, - { carrier : companyId } - ]}); filter = { $and : andFilterList }; }else{ - filter = {$or : [ - { company : companyId }, - { carrier : companyId } - ]}; + filter = null; } const { total , limit, skip, data } = await generic.getList( page , elements, filter ); const load_list = data; @@ -77,8 +87,7 @@ async function findElementById( elementId ){ const findList = async(req, res) => { try{ const query = req.query || {}; - const companyId = req.context.companyId; - const retVal = await findLoads( companyId , query ); + const retVal = await findLoads( query ); res.send( retVal ); }catch(error){ console.error( error );