diff --git a/src/db/utils.js b/src/db/utils.js index 591db8c..b396bdc 100644 --- a/src/db/utils.js +++ b/src/db/utils.js @@ -1,3 +1,4 @@ +const { strings_en } = require("../strings"); const { sendTelegramMessage } = require("../telegram"); const { User, Contact } = require("./db"); @@ -11,7 +12,7 @@ function addContact(telegram, withUserID, done) { ); sendTelegramMessage( withUser.telegram, - "Someone scanned your QR code. You will be notified if they are tested positive with Covid. If you are tested positive, please tell this bot /COVIDPOSITIVE", + strings_en.telegram_qr_scanned, () => {} ); done(true, "Successfully added contact"); diff --git a/src/routes/TelegramWebhookRoute.js b/src/routes/TelegramWebhookRoute.js index 9c1e795..474c6f9 100644 --- a/src/routes/TelegramWebhookRoute.js +++ b/src/routes/TelegramWebhookRoute.js @@ -1,32 +1,39 @@ const { Op } = require("sequelize"); const { User, Contact } = require("../db/db"); +const { strings_en } = require("../strings"); const { sendTelegramMessage } = require("../telegram"); function TelegramWebhookRoute(req, res) { try{ - const messageText = req.body.message.text; - const telegramID = req.body.message.from.id; - if (messageText.toLowerCase() == "/covidpositive") { - userInfected(telegramID, (result) => { - if(result.saved){ - sendTelegramMessage(telegramID, "Thanks for informing us. We will notify the people you were in contact with!", ()=>{}); - informContacts(telegramID, ()=>{}); - }else{ - sendTelegramMessage(telegramID, "Sorry, something went wrong.", ()=>{}); - } - }); + if(req.body.message.connected_website){ + sendTelegramMessage(req.body.message.from.id, "Thanks for using OurSejahtera! Let's stay safer together <3"); + }else{ + const messageText = req.body.message.text; + const telegramID = req.body.message.from.id; + if (messageText.toLowerCase() == "/covidpositive") { + userInfected(telegramID, (result) => { + if(result.saved){ + sendTelegramMessage(telegramID, strings_en.telegram_inform_positive); + informContacts(telegramID); + }else{ + sendTelegramMessage(telegramID, "Sorry, something went wrong."); + } + }); + } } } catch(e){ console.log("Could not get Telegram Message"); } + + res.send(); } -function informContacts(telegramID, doneCallback){ +function informContacts(telegramID, doneCallback=()=>{}){ User.findOne({ where: { telegram: telegramID, @@ -47,7 +54,7 @@ function informContacts(telegramID, doneCallback){ id: otherPersonID, } }).then(otherPerson => { - sendTelegramMessage(otherPerson.telegram, "You're infected.", ()=>{}); + sendTelegramMessage(otherPerson.telegram, strings_en.telegram_inform_infect); }); }); }); diff --git a/src/strings.js b/src/strings.js new file mode 100644 index 0000000..22c95de --- /dev/null +++ b/src/strings.js @@ -0,0 +1,16 @@ +const strings_en = { + telegram_inform_infect: "ATTENTION! Someone you have been \ +in contact with has reported being tested POSITIVE with \ +COVID19. Please maintain a self-quarantine until getting \ +tested, and follow all local guidelines.", + + telegram_inform_positive: "Thanks for informing us. We will \ +notify the people you were in contact with! Please follow all \ +local COVID19 guidelines.", + + telegram_qr_scanned: "Someone scanned your QR code. You will \ +be notified if they report being tested positive with COVID19. If \ +you are tested positive, please tell me /COVIDPOSITIVE", +}; + +exports.strings_en = strings_en; \ No newline at end of file diff --git a/src/telegram.js b/src/telegram.js index 73c601c..537ada8 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -16,7 +16,7 @@ function setTelegramWebHook(done) { }); } -function sendTelegramMessage(telegramID, message, done) { +function sendTelegramMessage(telegramID, message, done=()=>{}) { const url = `https://api.telegram.org/bot${process.env.TELEGRAM_TOKEN}/sendMessage`; axios .post(url, {