From f56f06270c8c6c98239dab422a0982e7a9b6952d Mon Sep 17 00:00:00 2001 From: "Josepablo C." Date: Wed, 15 Nov 2023 20:59:11 -0600 Subject: [PATCH] feat: Adding public-companies/users --- src/apps/public/public-companies/routes.js | 1 + src/apps/public/public-companies/services.js | 64 +++++++++++++++++++- 2 files changed, 64 insertions(+), 1 deletion(-) diff --git a/src/apps/public/public-companies/routes.js b/src/apps/public/public-companies/routes.js index 3e66e59..37b9072 100644 --- a/src/apps/public/public-companies/routes.js +++ b/src/apps/public/public-companies/routes.js @@ -4,5 +4,6 @@ const services= require('./services.js'); router.get('/shipper', services.getListShippers); router.get('/carrier', services.getListCarriers); +router.get('/users/:companyId', services.getUserLists); module.exports = router; diff --git a/src/apps/public/public-companies/services.js b/src/apps/public/public-companies/services.js index e790995..c90d9ec 100644 --- a/src/apps/public/public-companies/services.js +++ b/src/apps/public/public-companies/services.js @@ -7,11 +7,14 @@ const { getPagination , getPage } = require( `${ROOT_PATH}/${LIB_PATH}/Misc.js` const { GenericHandler } = require( `${ROOT_PATH}/${HANDLERS_PATH}/Generic.handler.js` ); const Model = require( `${ROOT_PATH}/${MODELS_PATH}/companies.model.js` ); const categoriesModel = require( `${ROOT_PATH}/${MODELS_PATH}/product-categories.model.js` ); +const usersModel = require( `${ROOT_PATH}/${MODELS_PATH}/users.model.js` ); const populate_select = { categories:"-_id name", }; const generic = new GenericHandler( Model, null, null , populate_select ); + +const user_generic = new GenericHandler( usersModel ); function join_field_list( obj_with_fields , list_of_fields ) { @@ -81,4 +84,63 @@ const getListCarriers = async(req, res) => { res.send( retVal ); }; -module.exports = { getListShippers, getListCarriers }; +const getUserLists = async(req, res) => { + try{ + const companyId = req.params.companyId; + + const { elements } = getPagination( req.query ); + const page = 0;// No pagination allowed to this endpoint + let query_elements; + if( elements >= 100 ){ + query_elements = 100;// Never return more than 100 elements + }else{ + query_elements = elements; + } + + const select = [ + "first_name", + "middle_name", + "last_name", + "company", + "employe_id", + "phone", + "phone2", + "email", + "categories", + "user_city", + "user_state", + "truck_type" + ]; + const queryVal = await user_generic.getList(page , query_elements, { company : companyId }, select ); + const data_list = queryVal.data; + for(let i=0; i c.name); + + /** Remove not requried fields */ + delete data_list[i].categories; + delete data_list[i].user_city; + delete data_list[i].user_state; + delete data_list[i].truck_type; + } + const retVal = { + total : queryVal.total, + limit : queryVal.limit, + skip : queryVal.skip, + data : data_list + }; + return res.status(200).send( retVal ); + } catch ( err ){ + console.error( err ); + return res.status(500).send({ error : "Public-Companies: Internal error" }); + } +}; + +module.exports = { getListShippers, getListCarriers, getUserLists };