diff --git a/src/lib/Handlers/Proposals.handler.js b/src/lib/Handlers/Proposals.handler.js index 2c9f985..a8bfc44 100644 --- a/src/lib/Handlers/Proposals.handler.js +++ b/src/lib/Handlers/Proposals.handler.js @@ -14,27 +14,39 @@ const companiesModel = getModel('companies'); * @returns */ async function onPatchEvent( id , newProposalData ){ - if( !newProposalData.is_accepted ){ - return; - } const proposal = await proposalsModel.findById( id ); - const shipper_user = await usersModel.findById( proposal.accepted_by ); - const shipper = await companiesModel.findById( shipper_user.company ); - const vehicle = await vehiclesModel.findById( proposal.vehicle ); - - /// Update Proposal: - /// Adding shipper to proposal - await proposalsModel.findByIdAndUpdate( id , { - shipper : shipper.id - } ); - - /// Update Load: - /// Add carrier, driver and vehicle - await loadsModel.findByIdAndUpdate( proposal.load, { - carrier : proposal.carrier, - driver : vehicle.driver, - vehicle : proposal.vehicle, - } ); + if( !newProposalData.is_accepted ){ + /// Update Proposal: + /// Remove shipper + await proposalsModel.findByIdAndUpdate( id , { + shipper : null + } ); + + /// Update Load: + /// Remove carrier, driver and vehicle + await loadsModel.findByIdAndUpdate( proposal.load, { + carrier : null, + driver : null, + vehicle : null, + } ); + }else{ + const shipper_user = await usersModel.findById( proposal.accepted_by ); + const shipper = await companiesModel.findById( shipper_user.company ); + const vehicle = await vehiclesModel.findById( proposal.vehicle ); + /// Update Proposal: + /// Adding shipper to proposal + await proposalsModel.findByIdAndUpdate( id , { + shipper : shipper.id + } ); + + /// Update Load: + /// Add carrier, driver and vehicle + await loadsModel.findByIdAndUpdate( proposal.load, { + carrier : proposal.carrier, + driver : vehicle.driver, + vehicle : proposal.vehicle, + } ); + } } module.exports = { onPatchEvent };