From e676a984763e550f4c3985255649f390787dac89 Mon Sep 17 00:00:00 2001 From: Josepablo C Date: Fri, 16 Aug 2024 21:34:46 -0600 Subject: [PATCH] feat(v1:vehicles): Adding vehicles search by company_name and filters --- v1/README.md | 4 ++++ v1/package.json | 2 +- v1/src/apps/private/vehicles/services.js | 8 +++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/v1/README.md b/v1/README.md index 866bf7b..b5c2667 100644 --- a/v1/README.md +++ b/v1/README.md @@ -448,6 +448,7 @@ __This endpoint is only valid for carriers.__ - state, - status, - destino + - $sort[ field ] : -1/1 ; Sort result by field name - `GET /global/find` : Find a list of elements (from all the system) with any of the following fields: - company, (company id) - categories, @@ -464,6 +465,9 @@ __This endpoint is only valid for carriers.__ - state, - status, - destino + - 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 - `POST /new` : Creates a new element. - `PATCH /:id` : Updates data from specific element. - `DELETE /:id` : Delete element from company. Returns the element data. diff --git a/v1/package.json b/v1/package.json index b8636cc..4f88ea4 100644 --- a/v1/package.json +++ b/v1/package.json @@ -4,7 +4,7 @@ "description": "ETA API", "main": "index.js", "scripts": { - "start": "node src/", + "start": "nodemon src/", "dev": "nodemon src/", "test": "mocha test/lib/handlers/proposals" }, diff --git a/v1/src/apps/private/vehicles/services.js b/v1/src/apps/private/vehicles/services.js index 90169a0..bead205 100644 --- a/v1/src/apps/private/vehicles/services.js +++ b/v1/src/apps/private/vehicles/services.js @@ -31,7 +31,7 @@ function getAndFilterList( query ){ } = query; if( company ) { filter_list.push({ company }); } - if( company_name ) { filter_list.push({ company_name }); } + if( company_name ) { filter_list.push({ company_name : company_name }); } if( is_available ) { filter_list.push({ is_available }); } if( categories ) { filter_list.push({ categories }); } if( active_load ) { filter_list.push({ active_load }); } @@ -56,6 +56,7 @@ function getAndFilterList( query ){ async function findElements( companyId , query ){ const { page, elements } = getPagination( query ); + const { $sort } = query; const andFilterList = getAndFilterList( query ); let filter; if( andFilterList ){ @@ -64,7 +65,7 @@ async function findElements( companyId , query ){ }else{ filter = { company : companyId }; } - const { total , limit, skip, data } = await generic.getList( page , elements, filter ); + const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort ); return { total, limit, @@ -75,6 +76,7 @@ async function findElements( companyId , query ){ async function findGlobalElements( query ){ const { page, elements } = getPagination( query ); + const { $sort } = query; const andFilterList = getAndFilterList( query ); let filter = null; @@ -84,7 +86,7 @@ async function findGlobalElements( query ){ filter = null; } - const { total , limit, skip, data } = await generic.getList( page , elements, filter ); + const { total , limit, skip, data } = await generic.getList( page , elements, filter, null, $sort ); return { total, limit,