From 0b37ea1ac1ee3062b50a797a6470faf0b9fd6330 Mon Sep 17 00:00:00 2001 From: "Josepablo C." Date: Fri, 6 Oct 2023 01:05:29 -0600 Subject: [PATCH] feat: Adding public vehicles endpoint --- README.md | 3 ++- sections/public-vehicles/routes.js | 7 +++++++ sections/public-vehicles/services.js | 25 +++++++++++++++++++++++++ sections/sections.js | 10 ++++++---- 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 sections/public-vehicles/routes.js create mode 100644 sections/public-vehicles/services.js diff --git a/README.md b/README.md index cd225fe..b44acc0 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,10 @@ Read registered resources: - `GET /meta-data`: List registered meta-data. - `GET /meta-groups`: List registered meta-data. - `GET /product-categories`: List registered product-categories. + - `GET /public-vehicles`: List registered product-categories. - `GET /states`: List registered states. -All these endpoints support the following parameters: +All these endpoints support the following parameters (except for those with `public-` as prefix, for example `public-vehicles`): - `/` : List registered resources with pagination. - `/:id` : Read specific resource identified by Id. diff --git a/sections/public-vehicles/routes.js b/sections/public-vehicles/routes.js new file mode 100644 index 0000000..3ae6ea0 --- /dev/null +++ b/sections/public-vehicles/routes.js @@ -0,0 +1,7 @@ +'use strict'; +const router = require('express').Router(); +const services= require('./services.js'); + +router.get('/', services.getPublicVehiclesList); + +module.exports = router; diff --git a/sections/public-vehicles/services.js b/sections/public-vehicles/services.js new file mode 100644 index 0000000..69b3ad3 --- /dev/null +++ b/sections/public-vehicles/services.js @@ -0,0 +1,25 @@ +"use strict"; +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}/vehicles.model.js` ); + +const getPublicVehiclesList = async(req, res) => { + const filter = { status : "Free" }; + const select = [ + "city", + "state", + "truck_type", + "tyre_type", + "destino", + "available_date", + "createdAt", + "updatedAt", + "published_date", + "status" + ]; + const { page , elements } = getPagination( req.query ); + const retVal = await queryPage( page , elements, Model, filter, select ); + res.send( retVal ); +}; + +module.exports = { getPublicVehiclesList }; diff --git a/sections/sections.js b/sections/sections.js index 346f681..700ec49 100644 --- a/sections/sections.js +++ b/sections/sections.js @@ -5,20 +5,22 @@ const { ROOT_PATH , LIB_PATH } = process.env; const router = require('express').Router(); const jwtValidator = require( `${ROOT_PATH}/${LIB_PATH}/jwtValidator.js` ); -const test = require('./test/routes.js'); -const users = require('./users/routes.js'); const countries = require('./countries/routes.js'); const cities = require('./cities/routes.js'); -const productCategories = require('./product-categories/routes.js'); -const states = require('./states/routes.js'); const metaData = require('./meta-data/routes.js'); const metaGroups = require('./meta-groups/routes.js'); +const productCategories = require('./product-categories/routes.js'); +const publicVehicles = require('./public-vehicles/routes.js'); +const states = require('./states/routes.js'); +const test = require('./test/routes.js'); +const users = require('./users/routes.js'); router.use('/countries', countries); router.use('/cities', cities); router.use('/meta-data', metaData); router.use('/meta-groups', metaGroups); router.use('/product-categories', productCategories); +router.use("/public-vehicles", publicVehicles); router.use('/states', states); router.use("/test", test);