Files
asan-service/server/controllers/thirdPartyController.js
T
2023-08-17 13:05:51 +03:30

131 lines
5.0 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')
const { phrases } = require('../plugins/SMS_Phrases')
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')
function getMessageTxt() {
const msgArray = [
'مشتری گرامی',
user.first_name + ' ' + user.last_name,
'\n',
'کالاهای شما با شماره پذیرش موقت',
TempReceiptTransNumber,
'توسط واحد گارانتی آسان سرویس دریافت شد و با شماره پذیرش دائم',
ItemReceptionTransNumber,
'دردست بررسی می باشد. به محض آماده شدن کالاها به شما اطلاع رسانی خواهد شد.',
'\n',
phrases.signature
]
return msgArray.join(' ')
}
SMS([user.mobile_number], getMessageTxt())
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')
function getMessageTxt() {
const msgArray = [
'مشتری گرامی',
user.first_name + ' ' + user.last_name,
'\n',
'مراحل تعمیر و بررسی کالاهای ارسالی شما با شماره پذیرش',
ItemReceptionTransNumber,
'توسط واحد گارانتی آسان سرویس انجام شد و با شماره فاکتور گارانتی',
TransNumber,
'ثبت شد. به زودی کالاها به آدرس شما ارسال می گردد. ',
'\n',
phrases.signature
]
return msgArray.join(' ')
}
SMS([user.mobile_number], getMessageTxt())
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')
function getMessageTxt() {
const msgArray = [
'مشتری گرامی',
user.first_name + ' ' + user.last_name,
'\n',
'کالاهای ارسالی شما با شماره پذیرش',
ItemReceptionTransNumber,
'پس از انجام مراحل گارانتی توسط واحد گارانتی به آدرس شما ارسال شد. شماره بیجک بسته ارسالی',
DeliveryCode,
'می باشد. از همراهی و خرید شما سپاس گزاریم. ',
'\n',
phrases.signature
]
return msgArray.join(' ')
}
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)
})
SMS([user.mobile_number], getMessageTxt())
return res.json({ message: 'Message sent successfully' })
} catch (e) {
return res500(res, e)
}
}
]