fix: Adding categories field to loads

- Adding company/carrier as mandatory fields for load-attachments.
 - Adding categories field to loads.
This commit is contained in:
2023-10-12 21:53:43 -06:00
parent b3d3af91fb
commit c4600fa2be
3 changed files with 37 additions and 23 deletions

View File

@@ -30,16 +30,20 @@ async function getAuthorizationFilter( userId ){
} }
const getAttachment = async(req, res) => { const getAttachment = async(req, res) => {
const attachmentId = req.params.id; try{
const CompanyAccessFilter = await getAuthorizationFilter( req.JWT.payload.sub ); const attachmentId = req.params.id;
const filter = { const CompanyAccessFilter = await getAuthorizationFilter( req.JWT.payload.sub );
$and : [ const filter = {
{ _id : attachmentId }, $and : [
CompanyAccessFilter { _id : attachmentId },
] CompanyAccessFilter
}; ]
const retVal = await Model.findOne( filter ) || {}; };
res.send( retVal ); const retVal = await Model.findOne( filter ) || {};
res.send( retVal );
}catch( err ){
res.send( {} );
}
}; };
const getAttachmentList = async(req, res) => { const getAttachmentList = async(req, res) => {
@@ -50,18 +54,27 @@ const getAttachmentList = async(req, res) => {
}; };
const getLoadAttachmentList = async(req, res) => { const getLoadAttachmentList = async(req, res) => {
const loadId = req.params.id;
const CompanyAccessFilter = await getAuthorizationFilter( req.JWT.payload.sub );
console.log( loadId );
const filter = {
$and : [
{ load : loadId },
CompanyAccessFilter
]
};
const { page , elements } = getPagination( req.query ); const { page , elements } = getPagination( req.query );
const retVal = await getPage( page, elements, Model, filter ); const loadId = req.params.id;
res.send( retVal ); try{
const CompanyAccessFilter = await getAuthorizationFilter( req.JWT.payload.sub );
const filter = {
$and : [
{ load : loadId },
CompanyAccessFilter
]
};
const retVal = await getPage( page, elements, Model, filter );
return res.send( retVal );
}catch( error ){
console.log( error );
return res.send({
total: 0,
limit: elements,
skip: page*elements,
data : []
});
}
}; };
async function getLoadById( loadId , companyId ){ async function getLoadById( loadId , companyId ){
@@ -91,6 +104,7 @@ async function createLoadAttachment( type , userId , loadId ){
attachment = new Model({ attachment = new Model({
type : type, type : type,
carrier : companyId, carrier : companyId,
company : load.company,
load : loadId, load : loadId,
author : userId author : userId
}); });

View File

@@ -8,7 +8,7 @@ const CompaniesModel = require( `${ROOT_PATH}/${MODELS_PATH}/companies.model.js`
const VehiclesModel = require( `${ROOT_PATH}/${MODELS_PATH}/vehicles.model.js` ); const VehiclesModel = require( `${ROOT_PATH}/${MODELS_PATH}/vehicles.model.js` );
const ProposalsModel = require( `${ROOT_PATH}/${MODELS_PATH}/proposals.model.js` ); const ProposalsModel = require( `${ROOT_PATH}/${MODELS_PATH}/proposals.model.js` );
const populate_list = ['product', 'company', 'carrier', 'vehicle']; const populate_list = ['product', 'company', 'carrier', 'vehicle', 'categories'];
const generic = new GenericHandler( Model, null, populate_list ); const generic = new GenericHandler( Model, null, populate_list );
async function getAuthorizationFilter( userId ){ async function getAuthorizationFilter( userId ){

View File

@@ -8,7 +8,7 @@ const schema = new Schema({
default : () => Date.now() default : () => Date.now()
}, },
type: { type: String, enum: ['Loading', 'Downloading'], required : true }, type: { type: String, enum: ['Loading', 'Downloading'], required : true },
company: { type: Schema.Types.ObjectId, ref: 'companies' }, //shipper company: { type: Schema.Types.ObjectId, ref: 'companies', required: true }, //shipper
carrier: { type: Schema.Types.ObjectId, ref: 'companies', required: true }, // carrier carrier: { type: Schema.Types.ObjectId, ref: 'companies', required: true }, // carrier
load: { type: Schema.Types.ObjectId, ref: 'loads', required: true }, load: { type: Schema.Types.ObjectId, ref: 'loads', required: true },
author: { type: Schema.Types.ObjectId, ref: 'users', required: true }, author: { type: Schema.Types.ObjectId, ref: 'users', required: true },