diff options
| author | Ran Guin <[email protected]> | 2021-05-11 18:47:48 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2021-06-04 22:37:02 -0700 |
| commit | a487c4df120569b5d01bd380f9502aaafb2f87d4 (patch) | |
| tree | 408ba87d01c17e4999a4f474dba9193179b6d316 | |
| parent | 2e18dc7a532d07d6e53581e5076c7d61a45d6d65 (diff) | |
| download | coinos-server-a487c4df120569b5d01bd380f9502aaafb2f87d4.tar.gz coinos-server-a487c4df120569b5d01bd380f9502aaafb2f87d4.zip | |
add referrals routes
| -rw-r--r-- | routes/referrals.js | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/routes/referrals.js b/routes/referrals.js new file mode 100644 index 00000000..d0252466 --- /dev/null +++ b/routes/referrals.js @@ -0,0 +1,86 @@ +var express = require('express'); +var router = express.Router(); +var debug = require('debug')('referral') + +const { v4: uuidv4 } = require('uuid') +const config = require('./../config') + +router.get('/', function(req, res, next) { + res.send('list of referrals...'); +}); + +router.get( + "/grant", + ah(async (req, res) => { + const {sponsor_id, expiry} = req.query + + var token = uuidv4() + debug('generated token: ' + token + ' sponsored by ' + sponsor_id) + + var ref = await db.Referrals.create({ + sponsor_id: sponsor_id, + token: token, + status: 'pending' + }) + + debug('generated referral: ' + JSON.stringify(ref)) + return res.send(token) + }) +); + +router.get( + "/verify/:user_id/:token", + ah(async (req, res) => { + const { user_id, token } = req.params; + + debug('verify token: ' + token) + + const found = await db.Referral.findAll({ + attributes: ['status'], + where: { + token: token, + user_id: null + } + }) + + if (found && found.length) { + debug('found referral: ' + JSON.stringify(found)) + if (found[0].status === 'pending') { + + await db.Referral.update( + { + status: 'active', + user_id: user_id, + updated_at: new Date().toISOString().substring(0,10) + }, + { + where: { token: token } + } + ) + + return res.send({ verified: true }); + } else { + res.status(500).send({ verified: false, message: 'Referral already ' + found[0].status }) + } + } else { + res.status(500).send('Invalid referral token') + } + }) +); + +router.post( + "/joinQueue", + ah(async (req, res) => { + const { email, sms } = req.query; + + debug('email: ' + email) + + const added = db.WaitingList.create({ + email: email + }) + + res.send({message: 'Added to waiting list'}) + }) +); + +module.exports = router; |
