summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/app.js4
-rw-r--r--src/db.js29
2 files changed, 32 insertions, 1 deletions
diff --git a/src/app.js b/src/app.js
index 8c863a2..9067aa6 100644
--- a/src/app.js
+++ b/src/app.js
@@ -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