Untitled

 avatar
unknown
javascript
a year ago
1.9 kB
5
Indexable

const express = require('express')
var admin = require("firebase-admin");
admin.initializeApp({
    credential: admin.credential.cert("cosan-2ab11-firebase-adminsdk-2nx4r-0bf17911c7.json")
});
const app = express()
let db={};

app.get('/list', (req, res) => {
    let code=req.query.code;
    if(code in db){
        res.send(db[code].listNoti);
    }else res.send([])
});
app.get('/register', (req, res) => {
    let token=req.query.token;
    let code=req.query.code;
    if(code!=undefined && code!=""){
        if(db[code]==undefined || db[code]!=null){
            db[code]={
                listDevices:[],
                listNoti:[]
            };
        }
        for (const keyCode in db) {
            if(db[keyCode].listDevices.includes(token)) {
                const index = db[keyCode].listDevices.indexOf(token);
                db[keyCode].listDevices.splice(index, 1);
                break;
            }
        }
        db[code].listDevices.push(token);
        res.sendStatus(200);
    }else res.sendStatus(501);
});



app.get('/send', async (req, res) => {
    console.log(req.query);
    const code=req.query.code;
    let message={
        title:req.query.title,
        body:req.query.body+'\n'+(new Date().toLocaleString()),
    };
    if(code in db){
        db[code].listNoti.push(message)
        if(db[code].listNoti.length>100) db[code].listNoti.shift();
        try {
            if(db[code].listDevices.length>0)
                await admin.messaging().sendEachForMulticast({
                    notification: message,
                    tokens:db[code].listDevices
                });
            console.log(message);
            res.send(message);
        } catch (error) {
            console.error(error);
            res.sendStatus(500);
        }
    } else res.sendStatus(404);
});

app.listen(3000,()=>{
    console.log("Started");
})
Editor is loading...
Leave a Comment