transfer project in github
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
const User = require('./../models/User')
|
||||
const {body, validationResult} = require('express-validator')
|
||||
const {_sr} = require('../plugins/serverResponses')
|
||||
const {sendSingle , sendMulti} = require('./../plugins/pushNotif').notification
|
||||
const {res404, res500, checkValidations} = require('../plugins/controllersHelperFunctions')
|
||||
|
||||
|
||||
module.exports.send = [
|
||||
[
|
||||
body('multi')
|
||||
.notEmpty().withMessage(_sr['fa'].required.index)
|
||||
.bail()
|
||||
.isBoolean().withMessage(_sr['fa'].format.boolean),
|
||||
|
||||
body('title')
|
||||
.notEmpty().withMessage(_sr['fa'].required.field),
|
||||
|
||||
body('body')
|
||||
.notEmpty().withMessage(_sr['fa'].required.field),
|
||||
|
||||
body('user_id')
|
||||
.if((value, {req})=>{
|
||||
return req.body.user_id
|
||||
})
|
||||
.custom((value,{req})=>{
|
||||
return User.findById(value)
|
||||
.then(user => {
|
||||
if (!user) return Promise.reject('کاربر وجود ندارد یا حذف شده است')
|
||||
else return true
|
||||
})
|
||||
})
|
||||
],
|
||||
checkValidations(validationResult),
|
||||
async (req, res) => {
|
||||
try {
|
||||
const {multi , user_id , title , body} = req.body
|
||||
|
||||
const objNotif = {
|
||||
title,
|
||||
body
|
||||
}
|
||||
|
||||
if(multi){
|
||||
const fcmTokens = []
|
||||
const users = await User.find({scope: 'user'})
|
||||
|
||||
for (const user of users) {
|
||||
if (user.fcmToken) fcmTokens.push(user.fcmToken)
|
||||
}
|
||||
|
||||
const payload = {
|
||||
notification: objNotif,
|
||||
// data: {
|
||||
// routeName: 'test',
|
||||
// type: "bazaar",
|
||||
// routeType: "viewBazaar",
|
||||
// },
|
||||
};
|
||||
|
||||
const input = {
|
||||
registrationTokens: fcmTokens,
|
||||
payload
|
||||
}
|
||||
|
||||
const status = await sendMulti(input)
|
||||
|
||||
// if (!status) return res500(res , _sr['fa'].response.unknownError)
|
||||
|
||||
return res.json({message : 'با موفقیت ارسال شد'})
|
||||
}else {
|
||||
const user = await User.findById(user_id)
|
||||
|
||||
const payload = {
|
||||
notification: objNotif,
|
||||
// data: {
|
||||
// routeName: 'test',
|
||||
// type: "bazaar",
|
||||
// routeType: "viewBazaar",
|
||||
// },
|
||||
};
|
||||
|
||||
const input = {
|
||||
registrationTokens: user?.fcmToken || '',
|
||||
payload
|
||||
}
|
||||
|
||||
const status = await sendSingle(input)
|
||||
|
||||
// if (!status) return res500(res , _sr['fa'].response.unknownError)
|
||||
|
||||
return res.json({message : 'با موفقیت ارسال شد'})
|
||||
}
|
||||
}catch (error) {
|
||||
return res500(res , _sr['fa'].response.unknownError)
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user