fix(loads): company_name regex is now enabled
This commit is contained in:
@@ -356,7 +356,7 @@ This endpoint is part of /loads endpoint
|
|||||||
### /loads
|
### /loads
|
||||||
|
|
||||||
- `GET /find` : Find a list of elements with any of the following fields:
|
- `GET /find` : Find a list of elements with any of the following fields:
|
||||||
- company
|
- companyId
|
||||||
- carrier
|
- carrier
|
||||||
- vehicle
|
- vehicle
|
||||||
- driver
|
- driver
|
||||||
@@ -369,6 +369,8 @@ This endpoint is part of /loads endpoint
|
|||||||
- categories
|
- categories
|
||||||
- product
|
- product
|
||||||
- shipment_code
|
- shipment_code
|
||||||
|
- company_name[$regex] : Regex string to find company_name
|
||||||
|
- company_name[$options] : Regex options from MongoDB filter description
|
||||||
- $sort[ field ] : -1/1 ; Sort result by field name
|
- $sort[ field ] : -1/1 ; Sort result by field name
|
||||||
- `GET /calendar` : Find a list of elements with any of the following fields:
|
- `GET /calendar` : Find a list of elements with any of the following fields:
|
||||||
- load_status_updated[gte] : Date grater than.
|
- load_status_updated[gte] : Date grater than.
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const { getModel } = require( '../../../lib/Models' );
|
|||||||
const { getPagination } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` );
|
const { getPagination } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` );
|
||||||
const { GenericHandler } = require( '../../../lib/Handlers//Generic.handler.js' );
|
const { GenericHandler } = require( '../../../lib/Handlers//Generic.handler.js' );
|
||||||
const Model = getModel('loads');
|
const Model = getModel('loads');
|
||||||
|
const CompanyModel = getModel('companies');
|
||||||
const ProposalsModel = getModel('proposals');
|
const ProposalsModel = getModel('proposals');
|
||||||
|
|
||||||
const populate_list = ['product', 'company', 'carrier', 'vehicle', 'categories'];
|
const populate_list = ['product', 'company', 'carrier', 'vehicle', 'categories'];
|
||||||
@@ -12,7 +13,7 @@ const generic = new GenericHandler( Model, null, populate_list );
|
|||||||
function getAndFilterList( query ){
|
function getAndFilterList( query ){
|
||||||
const filter_list = [];
|
const filter_list = [];
|
||||||
const {
|
const {
|
||||||
company,
|
companyId,
|
||||||
carrier,
|
carrier,
|
||||||
vehicle,
|
vehicle,
|
||||||
driver,
|
driver,
|
||||||
@@ -27,7 +28,7 @@ function getAndFilterList( query ){
|
|||||||
shipment_code
|
shipment_code
|
||||||
} = query;
|
} = query;
|
||||||
|
|
||||||
if( company ){ filter_list.push( { company } ); }
|
if( companyId ){ filter_list.push( { company : companyId } ); }
|
||||||
if( carrier ){ filter_list.push( { carrier } ); }
|
if( carrier ){ filter_list.push( { carrier } ); }
|
||||||
if( vehicle ){ filter_list.push( { vehicle } ); }
|
if( vehicle ){ filter_list.push( { vehicle } ); }
|
||||||
if( driver ){ filter_list.push( { driver } ); }
|
if( driver ){ filter_list.push( { driver } ); }
|
||||||
@@ -48,17 +49,30 @@ function getAndFilterList( query ){
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function findLoads( query ){
|
async function findLoads( query ){
|
||||||
const { $sort } = query;
|
const { $sort, company_name } = query;
|
||||||
const { page, elements } = getPagination( query );
|
const { page, elements } = getPagination( query );
|
||||||
const andFilterList = getAndFilterList( query );
|
const andFilterList = getAndFilterList( query ) || [];
|
||||||
|
|
||||||
let filter;
|
let filter;
|
||||||
|
|
||||||
if( andFilterList ){
|
if( company_name ){
|
||||||
|
/* Populate list of company ids with match on the company_name */
|
||||||
|
const company_list = await CompanyModel.find( { company_name }, [ "id" ] );
|
||||||
|
const or_company_list = []
|
||||||
|
company_list.forEach( (item) =>{
|
||||||
|
or_company_list.push({"company" : item.id});
|
||||||
|
})
|
||||||
|
andFilterList.push({
|
||||||
|
$or : or_company_list
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if( andFilterList.length > 0 ){
|
||||||
filter = { $and : andFilterList };
|
filter = { $and : andFilterList };
|
||||||
}else{
|
}else{
|
||||||
filter = null;
|
filter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort );
|
const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort );
|
||||||
|
|
||||||
const load_list = data;
|
const load_list = data;
|
||||||
|
|||||||
Reference in New Issue
Block a user