Files
asan-service/server/controllers/thirdPartyController.js
T
2025-07-09 11:55:58 +03:30

100 lines
3.5 KiB
JavaScript

const { body, validationResult } = require('express-validator')
const User = require('../models/User')
const SurveyCheck = require('../models/SurveyCheck')
const { res406, res500, checkValidations } = require('../plugins/controllersHelperFunctions')
const sms = require('../plugins/SMS_Module')
module.exports.reception = [
[
body('BusinessID').notEmpty().withMessage('BusinessID is required'),
body('TempReceiptTransNumber').notEmpty().withMessage('TempReceiptTransNumber is required'),
body('ItemReceptionTransNumber').notEmpty().withMessage('ItemReceptionTransNumber is required')
],
checkValidations(validationResult),
async (req, res) => {
const { BusinessID, TempReceiptTransNumber, ItemReceptionTransNumber } = req.body
try {
// check user id and agent status
const user = await User.findOne({ $or: [{ verity_businessID: BusinessID }, { panatech_businessID: BusinessID }] })
if (!user) return res406(res, 'Incorrect BusinessID')
await sms.warranty.reception(
user.mobile_number,
user.first_name + ' ' + user.last_name,
TempReceiptTransNumber,
ItemReceptionTransNumber,
Date.now()
)
return res.json({ message: 'Message sent successfully' })
} catch (e) {
return res500(res, e)
}
}
]
module.exports.repair = [
[
body('BusinessID').notEmpty().withMessage('BusinessID is required'),
body('TransNumber').notEmpty().withMessage('TransNumber is required'),
body('ItemReceptionTransNumber').notEmpty().withMessage('ItemReceptionTransNumber is required')
],
checkValidations(validationResult),
async (req, res) => {
const { BusinessID, ItemReceptionTransNumber, TransNumber } = req.body
try {
// check user id and agent status
const user = await User.findOne({ $or: [{ verity_businessID: BusinessID }, { panatech_businessID: BusinessID }] })
if (!user) return res406(res, 'Incorrect BusinessID')
await sms.warranty.repairCompleted(
user.mobile_number,
user.first_name + ' ' + user.last_name,
ItemReceptionTransNumber,
TransNumber,
Date.now()
)
return res.json({ message: 'Message sent successfully' })
} catch (e) {
return res500(res, e)
}
}
]
module.exports.sendBack = [
[
body('BusinessID').notEmpty().withMessage('BusinessID is required'),
body('DeliveryCode').notEmpty().withMessage('DeliveryCode is required'),
body('ItemReceptionTransNumber').notEmpty().withMessage('ItemReceptionTransNumber is required')
],
checkValidations(validationResult),
async (req, res) => {
const { BusinessID, ItemReceptionTransNumber, DeliveryCode } = req.body
try {
// check user id and agent status
const user = await User.findOne({ $or: [{ verity_businessID: BusinessID }, { panatech_businessID: BusinessID }] })
if (!user) return res406(res, 'Incorrect BusinessID')
const surveyData = {
code: ItemReceptionTransNumber,
user: user._id,
timeAdded: Date.now()
}
const surveyCheck = new SurveyCheck(surveyData)
surveyCheck.save(err => {
if (err) console.log('surveyCheck save error', err)
})
await sms.warranty.sendback(
user.mobile_number,
user.first_name + ' ' + user.last_name,
ItemReceptionTransNumber,
DeliveryCode,
Date.now()
)
return res.json({ message: 'Message sent successfully' })
} catch (e) {
return res500(res, e)
}
}
]