Right message structure

This commit is contained in:
estevez-dev 2020-05-17 02:35:07 +03:00
parent 9649610e91
commit 325f0d8664

View File

@ -1,48 +1,38 @@
module.exports = { module.exports = {
createPayload: function createPayload(req) { createPayload: function createPayload(req) {
// Payload according to
// https://firebase.google.com/docs/reference/admin/node/TokenMessage
var payload = { var payload = {
android: { android: {
collapseKey: "haclient" collapseKey: "haclient",
notification: {
icon: "mini_icon",
clickAction: "FLUTTER_NOTIFICATION_CLICK",
channelId: "ha_notify"
}
}, },
notification: {}, notification: {},
data: { data: {},
click_action: "FLUTTER_NOTIFICATION_CLICK"
},
}; };
var updateRateLimits = true; var updateRateLimits = true;
if (req.body.data) {
// Allow setting of ttl
// https://firebase.google.com/docs/reference/admin/node/admin.messaging.AndroidConfig.html#optional-ttl
if (req.body.data.ttl) {
payload.android.ttl = req.body.data.ttl;
}
// https://firebase.google.com/docs/reference/admin/node/admin.messaging.AndroidConfig.html#optional-priority
if (req.body.data.priority) {
payload.android.priority = req.body.data.priority;
}
if (req.body.data.image) {
payload.notification.image = req.body.data.image;
}
}
if (req.body.message) { if (req.body.message) {
payload.data.message = req.body.message; payload.notification.body = req.body.message;
if (req.body.message in ['request_location_update', 'clear_notification']) {
updateRateLimits = false
} else {
payload.notification.body = req.body.message;
}
} }
if (req.body.title) { if (req.body.title) {
payload.data.title = req.body.title payload.notification.title = req.body.title;
if (req.body.message in ['request_location_update', 'clear_notification']) { }
updateRateLimits = false
} else { // https://firebase.google.com/docs/reference/admin/node/admin.messaging.AndroidNotification
payload.notification.title = req.body.title; if (req.body.data) {
if (req.body.data.image) {
payload.notification.imageUrl = req.body.data.image;
}
for (const key of ['tag', 'color', 'channelId']) {
if (req.body.data[key]) {
payload.android.notification[key] = String(req.body.data[key])
}
} }
} }