diff options
Diffstat (limited to 'routes/users.ts')
| -rw-r--r-- | routes/users.ts | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/routes/users.ts b/routes/users.ts index 5f6f0747..deeca4ea 100644 --- a/routes/users.ts +++ b/routes/users.ts @@ -256,6 +256,7 @@ export default { "prompt", "profile", "pubkey", + "push", "reserve", "salt", "seed", @@ -340,21 +341,28 @@ export default { } }, - async subscribe(req, res) { - let { body, user } = req; - let { subscriptions } = user; - let { subscription } = body; - if (!subscriptions) subscriptions = []; - if ( - !subscriptions.find( - (s) => JSON.stringify(s) === JSON.stringify(subscription), - ) - ) - subscriptions.push(subscription); - user.subscriptions = subscriptions; - l("subscribing", user.username); - await user.save(); - res.sendStatus(201); + async subscription(req, res) { + try { + let { subscription } = req.body; + let { id } = req.user; + await db.sAdd(`${id}:subscriptions`, JSON.stringify(subscription)); + res.send(subscription); + } catch (e) { + console.log(e); + bail(res, e.message); + } + }, + + async deleteSubscription(req, res) { + try { + let { subscription } = req.body; + let { id } = req.user; + await db.sRem(`${id}:subscriptions`, JSON.stringify(subscription)); + res.send(subscription); + } catch (e) { + console.log(e); + bail(res, e.message); + } }, async password(req, res) { |
