Files
vinlottis/api/message.js
Kasper Rynning-Tønnesen 7aa47b08ad Fix automatic choser issue
2020-04-17 15:50:22 +02:00

93 lines
2.9 KiB
JavaScript

const request = require("request");
const path = require("path");
const config = require(path.join(__dirname + "/../config/defaults/lottery"));
async function sendMessage(winnerObject) {
winnerObject.timestamp_sent = new Date().getTime();
winnerObject.timestamp_limit = new Date().getTime() * 600000;
await winnerObject.save();
let url = new URL(`/#/winner/${winnerObject.id}`, "https://lottis.vin");
await sendMessageToUser(
winnerObject.phoneNumber,
`Gratulerer som heldig vinner av vinlotteriet ${winnerObject.name}! Her er linken for å velge hva slags vin du vil ha, du har 10 minutter på å velge ut noe før du blir lagt bakerst i køen. ${url.href}. (Hvis den siden kommer opp som tom må du prøve å refreshe siden noen ganger.)`
);
return true;
}
async function sendWonWineMessage(winnerObject, wineObject) {
console.log(
`User ${winnerObject.id} is only one left, chosing wine for him/her.`
);
winnerObject.timestamp_sent = new Date().getTime();
winnerObject.timestamp_limit = new Date().getTime();
await winnerObject.save();
await sendMessageToUser(
winnerObject.phoneNumber,
`Gratulerer som heldig vinner av vinlotteriet ${winnerObject.name}! Du har vunnet vinen ${wineObject.name}, og vil få nærmere info om hvordan/hvor du kan hente vinen snarest. Ha en ellers fin helg!`
);
return true;
}
async function sendMessageTooLate(winnerObject) {
await sendMessageToUser(
winnerObject.phoneNumber,
`Hei ${winnerObject.name}, du har dessverre brukt mer enn 10 minutter på å velge premie og blir derfor puttet bakerst i køen. Du vil få en ny SMS når det er din tur igjen.`
);
}
async function sendMessageToUser(phoneNumber, message) {
try {
request.post(
{
url: `https://gatewayapi.com/rest/mtsms?token=${config.gatewayToken}`,
json: true,
body: {
sender: "Vinlottis",
message: message,
recipients: [{ msisdn: `47${phoneNumber}` }]
}
},
function(err, r, body) {
console.log(err ? err : body);
if(err) {
console.log(phoneNumber, message);
}
}
);
} catch(e) {
console.log(phoneNumber, message);
}
}
async function sendUpdate(winners) {
let numbers = [];
for (let i = 0; i < winners.length; i++) {
numbers.push({ msisdn: `47${winners[i].phoneNumber}` });
}
request.post(
{
url: `https://gatewayapi.com/rest/mtsms?token=${config.gatewayToken}`,
json: true,
body: {
sender: "Vinlottis",
message:
"Gratulerer som vinner av vinlottisen! Du vil snart få en SMS med oppdatering om hvordan gangen går!",
recipients: numbers
}
},
function(err, r, body) {
console.log(err ? err : body);
}
);
}
module.exports.sendUpdate = sendUpdate;
module.exports.sendMessage = sendMessage;
module.exports.sendMessageTooLate = sendMessageTooLate;
module.exports.sendWonWineMessage = sendWonWineMessage;