Edit File: fcm.js
'user strict'; /** * fcm helper functions */ const path = require('path'), DB = require('./db'), i18n_module = require('i18n-nodejs'), fs = require('fs'), axios = require('axios'), {getAccessToken} = require('./fcm_config/config'), {COLLAPSE_KEY,FCMURL} = require('./constVariables'), config = { "lang" : '', "langFile" : "../../locale.json" }, i18n_ar = new i18n_module(config.lang = "ar", config.langFile), i18n_en = new i18n_module(config.lang = "en", config.langFile); class FCM_HELPER { async send(data) { console.log("sendNotification") console //send fcm notification var sendername = data.sender_name; var message_ar = ''; var message_en = ''; var message = {}; let accessToken = await getAccessToken(); DB.query(`SELECT * FROM devices WHERE user_id = ${data.receiver_id}`).then((results, error) => { console.log("results",results) results.forEach((row) => { console.log("row",row.device_type) if(data.type == 'text') { message_ar = data.body; message_en = data.body; }else{ message_ar = i18n_ar.__(data.type); message_en = i18n_en.__(data.type); } if(row.device_type == 'ios'){ message = { token : row.device_id, // collapse_key : COLLAPSE_KEY, notification : { title : sendername, body : message_ar, }, "android": { "notification": { "sound": "default" } }, "apns": { "payload": { "aps": { "sound": "default" } } }, data: { title : sendername, title_ar : sendername, title_en : sendername, body_ar : message_ar, body_en : message_en, message_ar : message_ar, message_en : message_en, room_id : String(data.room_id), sender_id : String(data.receiver_id), receiver_id : String(data.sender_id), msg_type : data.type, sender_name : sendername, avatar : data.avatar, type : 'new_message', } }; }else{ message = { token : row.device_id, // collapse_key : COLLAPSE_KEY, notification : null, data : { title : sendername, title_ar : sendername, title_en : sendername, body_ar : message_ar, body_en : message_en, message_ar : message_ar, message_en : message_en, room_id : String(data.room_id), sender_id : String(data.receiver_id), receiver_id : String(data.sender_id), msg_type : data.type, sender_name : sendername, avatar : data.avatar, type : 'new_message', } }; } let msg_fcm = {"message":message} axios.post(FCMURL, msg_fcm, { headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' } }) .then(response => { console.log('Message sent successfully:'); }) .catch(error => { console.log(error.response.data) console.log(error.response.data.error.details) console.error('Error sending message:'); }); }); }); //end send fcm } } module.exports = new FCM_HELPER();
Back to File Manager