dss-server / src /controllers /gateController.js
yeshwanth-kr's picture
Upload 43 files
8c7b7ca verified
const dayjs = require('dayjs');
const { GatePass, Employee, Vendor } = require('../models');
async function gateSync(req, res, next) {
try {
const { barcode } = req.params;
const gatePass = await GatePass.findOne({ barcode }).sort({ created_at: -1 }).lean();
if (!gatePass) {
return res.status(404).json({ message: 'Pass not found' });
}
const employee = await Employee.findById(gatePass.employee_id, { name: 1, vendor_id: 1 }).lean();
if (!employee) {
return res.status(404).json({ message: 'Employee not found' });
}
const vendor = await Vendor.findById(employee.vendor_id, { name: 1 }).lean();
const isExpired = dayjs(gatePass.expiry_date).isBefore(dayjs().startOf('day'));
const status = gatePass.status === 'Active' && !isExpired
? 'VALID'
: (isExpired ? 'EXPIRED' : gatePass.status);
return res.json({
name: employee.name,
contractor: vendor?.name || 'N/A',
expiry_date: gatePass.expiry_date ? dayjs(gatePass.expiry_date).format('DD/MM/YYYY') : null,
status
});
} catch (error) {
return next(error);
}
}
module.exports = { gateSync };