Push-notifications is fun
This commit is contained in:
@@ -27,7 +27,11 @@ webpush.setVapidDetails(
|
|||||||
);
|
);
|
||||||
|
|
||||||
const sendNotification = (subscription, dataToSend = "") => {
|
const sendNotification = (subscription, dataToSend = "") => {
|
||||||
webpush.sendNotification(subscription, dataToSend);
|
try {
|
||||||
|
webpush.sendNotification(subscription, dataToSend);
|
||||||
|
} catch (e) {
|
||||||
|
console.log("error", e);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
router.use((req, res, next) => {
|
router.use((req, res, next) => {
|
||||||
@@ -55,6 +59,19 @@ const saveToDatabase = async subscription => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
router.route("/send-notification").post(async (req, res) => {
|
||||||
|
if (!req.isAuthenticated()) {
|
||||||
|
res.send(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const message = req.body.message;
|
||||||
|
let subs = await Subscription.find();
|
||||||
|
for (let i = 0; i < subs.length; i++) {
|
||||||
|
let subscription = subs[i]; //get subscription from your databse here.
|
||||||
|
sendNotification(subscription, message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
schedule.scheduleJob(
|
schedule.scheduleJob(
|
||||||
`0 50 ${lotteryConfig.hours - 1} * * ${lotteryConfig.date}`,
|
`0 50 ${lotteryConfig.hours - 1} * * ${lotteryConfig.date}`,
|
||||||
async () => {
|
async () => {
|
||||||
|
|||||||
@@ -1,6 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<h1>Registrering</h1>
|
<h1>Registrering</h1>
|
||||||
|
<div class="notification-element">
|
||||||
|
<div class="label-div">
|
||||||
|
<label for="notification">Push-melding</label>
|
||||||
|
<input id="notification" type="text" v-model="pushMessage" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="button-container">
|
||||||
|
<button @click="sendPush">Send push</button>
|
||||||
|
</div>
|
||||||
<div class="color-container">
|
<div class="color-container">
|
||||||
<div class="label-div">
|
<div class="label-div">
|
||||||
<label for="blue">Blå</label>
|
<label for="blue">Blå</label>
|
||||||
@@ -119,7 +128,8 @@ export default {
|
|||||||
yellow: 0,
|
yellow: 0,
|
||||||
payed: 0,
|
payed: 0,
|
||||||
winners: [],
|
winners: [],
|
||||||
wines: []
|
wines: [],
|
||||||
|
pushMessage: ""
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
async mounted() {
|
async mounted() {
|
||||||
@@ -141,6 +151,22 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
sendPush: async function() {
|
||||||
|
let _response = await fetch("/subscription/send-notification", {
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json"
|
||||||
|
// 'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
method: "POST",
|
||||||
|
body: JSON.stringify({ message: this.pushMessage })
|
||||||
|
});
|
||||||
|
let response = await _response.json();
|
||||||
|
if (response) {
|
||||||
|
alert("Sendt!");
|
||||||
|
} else {
|
||||||
|
alert("Noe gikk galt!");
|
||||||
|
}
|
||||||
|
},
|
||||||
addWine: function(event) {
|
addWine: function(event) {
|
||||||
this.wines.push({
|
this.wines.push({
|
||||||
name: "",
|
name: "",
|
||||||
|
|||||||
Reference in New Issue
Block a user