diff options
| -rw-r--r-- | jsconfig.json | 1 | ||||
| -rw-r--r-- | src/app.js | 4 | ||||
| -rw-r--r-- | src/db.js | 29 |
3 files changed, 32 insertions, 2 deletions
diff --git a/jsconfig.json b/jsconfig.json index 8d445d6..3545e94 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -2,7 +2,6 @@ "compilerOptions": { "module": "commonjs", "target": "es6", - "checkJs": false }, "exclude": ["node_modules"] } @@ -7,8 +7,10 @@ const app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.post('/sms', (req, res) => { - const + /** @type {string} */ + const body = req.body; const twiml = new MessagingResponse(); + twiml.message(JSON.stringify(body)); res.type('text/xml').send(twiml.toString()); }); diff --git a/src/db.js b/src/db.js new file mode 100644 index 0000000..145b144 --- /dev/null +++ b/src/db.js @@ -0,0 +1,29 @@ +// Ideally, we should write to a file and read it at app start in case of crashes. +// An actual SQL database would probably be overkill. + +/** @type Array<{ name: string, number: string }> */ +const subscriptions = []; + +/** + * @param {string} number + * @param {string} name + */ +export function subscribe(number, name) { + subscriptions.push({ name, number }); +} + +/** + * @param {string} number + */ +export function isSubscribed(number) { + return subscriptions.some(s => s.number == number); +} + +export function getSubscriptions() { + /** @type Array<{ name: string, number: string }> */ + const clone = []; + for (const subscription of subscriptions) { + clone.push({ ...subscription }); + } + return clone; +}
\ No newline at end of file |
