Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var express = require('express');
- var app = express();
- var bodyParser = require('body-parser');
- var admin = require('firebase-admin');
- var sql = require("mssql");
- // Initialize firebase
- var serviceAccount = require('./firebase-config.json');
- admin.initializeApp({
- credential: admin.credential.cert(serviceAccount),
- databaseURL: 'https://lippo-malls.firebaseio.com'
- });
- var sqlConfig = {
- user: 'sa',
- password: 'Password1!',
- server: '66.96.237.20',
- port: '49172',
- database: 'EmployeeServicesDB'
- };
- // Configure app to use bodyParser()
- app.use(bodyParser.urlencoded({ extended: true }));
- app.use(bodyParser.json());
- // Settings port & host
- var port = process.env.PORT || 8080;
- var host = '/node/notification-firebase';
- // Default Home
- app.get(host + '/', function(req, res) {
- res.json({
- success: true,
- message: 'Hello! The API is at /api'
- });
- });
- // Routes API
- var router = express.Router();
- // Default API
- router.get('/', function (req, res) {
- res.json({
- success: true,
- message: 'Welcome to the coolest API on earth!'
- });
- });
- // Test SQL
- router.get('/push-notification-all', function (req, res) {
- sql.connect(sqlConfig, function (err) {
- if (err) console.log(err);
- var request = new sql.Request();
- request.query('select * from TokenFirebase', function (err, recordset) {
- if (err) console.log(err)
- const result = recordset.recordsets[0];
- let firebaseToken = [];
- result.forEach((item) => {
- firebaseToken.push(item.FirebaseToken);
- });
- let payload = {
- notification: {
- title: 'New Course',
- body: 'New Course Added'
- },
- data: {
- targetScreen: 'Classroom'
- }
- };
- admin.messaging().sendToDevice(firebaseToken, payload)
- .then(function(response) {
- res.json({
- success: true,
- message: 'Success sending push notification' ,
- data: response
- });
- })
- .catch(function(error) {
- res.status(400).json({
- success: true,
- message: 'Error sending push notification' ,
- data: error
- });
- });
- });
- });
- });
- // Send Notification
- router.post('/push-notification', function (req, res) {
- let token = req.body.token;
- let title = req.body.title;
- let message = req.body.message;
- let targetScreen = req.body.targetScreen;
- if (token != undefined && Array.isArray(token) && token.length > 0 &&
- title != undefined && title != '' &&
- message != undefined && message != '' &&
- targetScreen != undefined && message != '') {
- let registrationToken = ["eR3-DL0Fcj8:APA91bGuY5QYQgBxRmMjEBxoTLw0tvxgDbC-ss2m8aZ1KPZCE4t835w_VvP0Gc7zTjtj1D_L6ZuBRqEIEOAFH5X47GMK-EYvztMPT670d0VIEKHtUU24kXZr6pfoyc2l2tvfWtvD_Exd"];
- let payload = {
- notification: {
- title: title,
- body: message
- },
- data: {
- targetScreen: targetScreen
- }
- };
- admin.messaging().sendToDevice(registrationToken, payload)
- .then(function(response) {
- res.json({
- success: true,
- message: 'Success sending push notification' ,
- data: response
- });
- })
- .catch(function(error) {
- res.status(400).json({
- success: true,
- message: 'Error sending push notification' ,
- data: error
- });
- });
- } else {
- res.status(400).json({
- success: false,
- message: "Invalid Arguments"
- });
- }
- });
- app.use(host + '/api', router);
- // Start server
- app.listen(port);
- console.log('Listening on port ' + port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement