Advertisement
Guest User

Untitled

a guest
Mar 7th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. var express = require('express');
  2. var app = express();
  3. var bodyParser = require('body-parser');
  4. var admin = require('firebase-admin');
  5. var sql = require("mssql");
  6.  
  7. // Initialize firebase
  8. var serviceAccount = require('./firebase-config.json');
  9. admin.initializeApp({
  10. credential: admin.credential.cert(serviceAccount),
  11. databaseURL: 'https://lippo-malls.firebaseio.com'
  12. });
  13.  
  14. var sqlConfig = {
  15. user: 'sa',
  16. password: 'Password1!',
  17. server: '66.96.237.20',
  18. port: '49172',
  19. database: 'EmployeeServicesDB'
  20. };
  21.  
  22. // Configure app to use bodyParser()
  23. app.use(bodyParser.urlencoded({ extended: true }));
  24. app.use(bodyParser.json());
  25.  
  26. // Settings port & host
  27. var port = process.env.PORT || 8080;
  28. var host = '/node/notification-firebase';
  29.  
  30. // Default Home
  31. app.get(host + '/', function(req, res) {
  32. res.json({
  33. success: true,
  34. message: 'Hello! The API is at /api'
  35. });
  36. });
  37.  
  38. // Routes API
  39. var router = express.Router();
  40.  
  41. // Default API
  42. router.get('/', function (req, res) {
  43. res.json({
  44. success: true,
  45. message: 'Welcome to the coolest API on earth!'
  46. });
  47. });
  48.  
  49. // Test SQL
  50. router.get('/push-notification-all', function (req, res) {
  51. sql.connect(sqlConfig, function (err) {
  52. if (err) console.log(err);
  53. var request = new sql.Request();
  54. request.query('select * from TokenFirebase', function (err, recordset) {
  55. if (err) console.log(err)
  56. const result = recordset.recordsets[0];
  57. let firebaseToken = [];
  58. result.forEach((item) => {
  59. firebaseToken.push(item.FirebaseToken);
  60. });
  61. let payload = {
  62. notification: {
  63. title: 'New Course',
  64. body: 'New Course Added'
  65. },
  66. data: {
  67. targetScreen: 'Classroom'
  68. }
  69. };
  70. admin.messaging().sendToDevice(firebaseToken, payload)
  71. .then(function(response) {
  72. res.json({
  73. success: true,
  74. message: 'Success sending push notification' ,
  75. data: response
  76. });
  77. })
  78. .catch(function(error) {
  79. res.status(400).json({
  80. success: true,
  81. message: 'Error sending push notification' ,
  82. data: error
  83. });
  84. });
  85. });
  86. });
  87. });
  88.  
  89. // Send Notification
  90. router.post('/push-notification', function (req, res) {
  91. let token = req.body.token;
  92. let title = req.body.title;
  93. let message = req.body.message;
  94. let targetScreen = req.body.targetScreen;
  95. if (token != undefined && Array.isArray(token) && token.length > 0 &&
  96. title != undefined && title != '' &&
  97. message != undefined && message != '' &&
  98. targetScreen != undefined && message != '') {
  99. let registrationToken = ["eR3-DL0Fcj8:APA91bGuY5QYQgBxRmMjEBxoTLw0tvxgDbC-ss2m8aZ1KPZCE4t835w_VvP0Gc7zTjtj1D_L6ZuBRqEIEOAFH5X47GMK-EYvztMPT670d0VIEKHtUU24kXZr6pfoyc2l2tvfWtvD_Exd"];
  100. let payload = {
  101. notification: {
  102. title: title,
  103. body: message
  104. },
  105. data: {
  106. targetScreen: targetScreen
  107. }
  108. };
  109. admin.messaging().sendToDevice(registrationToken, payload)
  110. .then(function(response) {
  111. res.json({
  112. success: true,
  113. message: 'Success sending push notification' ,
  114. data: response
  115. });
  116. })
  117. .catch(function(error) {
  118. res.status(400).json({
  119. success: true,
  120. message: 'Error sending push notification' ,
  121. data: error
  122. });
  123. });
  124. } else {
  125. res.status(400).json({
  126. success: false,
  127. message: "Invalid Arguments"
  128. });
  129. }
  130. });
  131.  
  132. app.use(host + '/api', router);
  133.  
  134. // Start server
  135. app.listen(port);
  136. console.log('Listening on port ' + port);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement