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) } } ]