Untitled
unknown
javascript
2 years ago
1.9 kB
9
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