This repository has been archived on 2025-04-22. You can view files and clone it, but cannot push or open issues or pull requests.
2020-05-17 02:35:07 +03:00

41 lines
1.1 KiB
JavaScript

module.exports = {
createPayload: function createPayload(req) {
// Payload according to
// https://firebase.google.com/docs/reference/admin/node/TokenMessage
var payload = {
android: {
collapseKey: "haclient",
notification: {
icon: "mini_icon",
clickAction: "FLUTTER_NOTIFICATION_CLICK",
channelId: "ha_notify"
}
},
notification: {},
data: {},
};
var updateRateLimits = true;
if (req.body.message) {
payload.notification.body = req.body.message;
}
if (req.body.title) {
payload.notification.title = req.body.title;
}
// https://firebase.google.com/docs/reference/admin/node/admin.messaging.AndroidNotification
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])
}
}
}
return { updateRateLimits: updateRateLimits, payload: payload };
}
}