diff --git a/src/apps/public/index.js b/src/apps/public/index.js index 0bf406c..3d98efd 100644 --- a/src/apps/public/index.js +++ b/src/apps/public/index.js @@ -17,6 +17,7 @@ const publicCompanies = require('./public-companies/routes.js'); const publicVehicles = require('./public-vehicles/routes.js'); const publicLoads = require('./public-loads/routes.js'); const publicLoadAttachments = require('./public-load-attachments/routes.js'); +const publicLoadsTracking = require('./public-load-tracking/routes.js'); const states = require('./states/routes.js'); const test = require('./test/routes.js'); @@ -33,6 +34,7 @@ router.use("/public-companies", publicCompanies); router.use("/public-vehicles", publicVehicles); router.use('/public-loads', publicLoads ); router.use('/public-load-attachments', publicLoadAttachments ); +router.use('/public-load-tracking', publicLoadsTracking ); router.use('/states', states); router.use("/test", test); diff --git a/src/apps/public/public-load-tracking/routes.js b/src/apps/public/public-load-tracking/routes.js new file mode 100644 index 0000000..ca02320 --- /dev/null +++ b/src/apps/public/public-load-tracking/routes.js @@ -0,0 +1,7 @@ +'use strict'; +const router = require('express').Router(); +const services= require('./services.js'); + +router.get('/:id', services.getById); + +module.exports = router; diff --git a/src/apps/public/public-load-tracking/services.js b/src/apps/public/public-load-tracking/services.js new file mode 100644 index 0000000..2b8ceea --- /dev/null +++ b/src/apps/public/public-load-tracking/services.js @@ -0,0 +1,46 @@ +"use strict"; +const { getModel } = require( '../../../lib/Models' ); +const Model = getModel('loads'); + +const vehicle_projection = ['background_tracking','status','last_location_lat', +'last_location_lng','last_location_geo','last_location_time'] + +const user_projection = ['first_name','last_name','middle_name'] + +const populate_list = [ + {path:'posted_by',select: user_projection }, + {path:'vehicle',select: vehicle_projection }, + 'posted_by_name', + 'categories' +]; + +const getById = async(req, res) => { + try{ + const elementId = req.params.id; + const select = [ + "categories", + "truck_type", + "published_date", + "createdAt", + "status", + "load_status", + "weight", + "est_loading_date", + "est_unloading_date", + "origin.city", + "origin_geo", + "origin.state", + "destination.city", + "destination.state", + "destination_geo", + ]; + // const load = await Model.findOne( { _id : elementId , load_status : "Transit" } , select ).populate( populate_list ); + const load = await Model.findById( elementId , select ).populate( populate_list ); + res.send( load ); + }catch(error){ + console.error( error ); + return res.status( 500 ).send({ error }); + } +}; + +module.exports = { getById };