File size: 2,436 Bytes
97f53b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
var express = require('express');
var router = express.Router();
var FCM = require('fcm-node');
var serverKey = 'AAAAKXRRooI:APA91bH9pMJziYPRNRI2XyMaSIG_e5a-eJzxMSkaozaCrmCencitDrTul4XyrVAV87K6d-56zGJC49y7Cz6mTRpcxca16QzmF1TF8EW7OmxHPvcQdseHWoD3TIAe62u2gfY0pVXlhJ8Y'
var fcm = new FCM(serverKey);
var User = require('../Database/models/user');
const { successResponse, failedResponse } = require('../utils/responseModel');
// const admin = require('firebase-admin');
const admin = require("../utils/firebase")

// Initialize the Firebase Admin SDK (replace with your credentials)
// admin.initializeApp({
//     credential: admin.credential.cert(require('../push-notification-key.json'))
//   });

router.post('/pushToken', async function (req, res) {
    var unique_idValue = req.body.unique_id;
    var pushTokenValue = req.body.pushToken;
    try {
        const data = await User.findOne({ unique_id: unique_idValue });
        if (data) {
            User.updateOne({
                unique_id
                    : data.unique_id
            }, {
                $set: {
                    pushToken: pushTokenValue
                }
            }).exec()
                .then(result => {
                    res.status(200).send(successResponse("Push token updated."));
                })
                .catch(err => {
                    console.log(err);
                    res.status(500).json({
                        error: err
                    });
                });
        } else {
            res.status(201).send(failedResponse("User not found!"));
        }
    } catch (e) {
        res.status(500).send(failedResponse(e));
    }
});



router.post('/push', async (req, res) => {
    try {
        const deviceToken = req.body.deviceToken;
        const title = req.body.title;
        const bodyText = req.body.bodyText;

        const message = {
            token: deviceToken,
            notification: {
                title: title,
                body: bodyText,
            },
            android: {
                priority: "high",
            },
        };

        // Send message via Firebase Admin SDK
        const response = await admin.messaging().send(message);
        res.status(200).send(response);
    } catch (err) {
        res.status(400).send("Something has gone wrong! => " + err.message);
        console.error("Error sending message:", err);
    }
});

module.exports = router;