diff options
| author | Adam Soltys <[email protected]> | 2022-09-06 09:20:25 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-09-06 09:20:25 -0700 |
| commit | c2464b2407ee23134732fd67586758dbfe18f9b5 (patch) | |
| tree | 3e2d9f009bb325a9a7c4304ea02f6e64dda85bd1 /routes/referrals.js | |
| parent | 8a080ef9a198799e7ee31cf81f92afd5495e4074 (diff) | |
| download | coinos-server-c2464b2407ee23134732fd67586758dbfe18f9b5.tar.gz coinos-server-c2464b2407ee23134732fd67586758dbfe18f9b5.zip | |
prettier
Diffstat (limited to 'routes/referrals.js')
| -rw-r--r-- | routes/referrals.js | 270 |
1 files changed, 129 insertions, 141 deletions
diff --git a/routes/referrals.js b/routes/referrals.js index 08059c74..b3d53306 100644 --- a/routes/referrals.js +++ b/routes/referrals.js @@ -1,19 +1,19 @@ -import express from 'express'; +import express from "express"; var router = express.Router(); -import { v4 } from 'uuid'; +import { v4 } from "uuid"; -router.get('/', function(req, res, next) { - res.send('list of referrals...'); +router.get("/", function(req, res, next) { + res.send("list of referrals..."); }); // Grant & Retrieve Referral tokens for existing user // usage: GET '/grant?sponsor_id=N&expiry=2021-09-01' // -// Required: +// Required: // sponsor_id (= user.id) -// Changes to DB: +// Changes to DB: // adds record to referrals table: // { token: <uuid>, sponsor_id: <user.id>, status: "available" } @@ -22,9 +22,9 @@ router.get('/', function(req, res, next) { * @apiName Grant * @apiGroup Referrals * - * + * * @apiPermission member - * + * * @apiParam {sponsor_id} user_id of member generating referral code. * @apiParam {expiry} optional expiry date for token. * @@ -34,28 +34,23 @@ router.get('/', function(req, res, next) { * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { - * "token": "*********", - * "status": "available", + * "token": "*********", + * "status": "available", * "expiry": null * } */ -router.post( - "/grant", - auth, - async (req, res) => { - const {sponsor_id, expiry} = req.body - var token = v4() +router.post("/grant", auth, async (req, res) => { + const { sponsor_id, expiry } = req.body; + var token = v4(); - var ref = await knex.table('referrals') - .insert({ - sponsor_id: sponsor_id, - token: token, - status: 'available' - } - ) + var ref = await knex.table("referrals").insert({ + sponsor_id: sponsor_id, + token: token, + status: "available" + }); - return res.send({token: token, status: 'available', expiry: expiry}) - }) + return res.send({ token: token, status: "available", expiry: expiry }); +}); /** * @api {get} /grant Grant Referral code (variation using get) @@ -63,7 +58,7 @@ router.post( * @apiGroup Referrals * * @apiPermission member - * + * * @apiPermission member * @apiParam {sponsor_id} user_id of member generating referral code. * @apiParam {expiry} optional expiry date for token. @@ -74,43 +69,37 @@ router.post( * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { - * "token": "*********", - * "status": "available", + * "token": "*********", + * "status": "available", * "expiry": null * } */ -router.get( - "/grant", - auth, - async (req, res) => { - const {sponsor_id, expiry} = req.query - var token = v4() - - var ref = await knex.table('referrals') - .insert({ - sponsor_id: sponsor_id, - token: token, - status: 'available' - } - ) +router.get("/grant", auth, async (req, res) => { + const { sponsor_id, expiry } = req.query; + var token = v4(); - return res.send({token: token, status: 'available', expiry: expiry}) - }) + var ref = await knex.table("referrals").insert({ + sponsor_id: sponsor_id, + token: token, + status: "available" + }); + return res.send({ token: token, status: "available", expiry: expiry }); +}); /** * @api {get} /checkTokens/:sponsor_id Retrieve list of referral tokens generated by this user - * + * * @apiName checkTokens * @apiGroup Referrals * - * + * * @apiPermission member - * + * * @apiParam {sponsor_id} user_id of member generating referral code. * @apiParam {status} optional token status. * - * @apiSuccess tokens array of token objects + * @apiSuccess tokens array of token objects * @apiSuccessExample {json} Success-Response: * HTTP/1.1 200 OK * { @@ -122,40 +111,37 @@ router.get( // TO FIX - change sponsor_id so that it is retrieved from current payload (NOT FROM URL) -router.get( - "/checkTokens/:sponsor_id", - auth, - async (req, res) => { - const {sponsor_id} = req.params - const {status} = req.query +router.get("/checkTokens/:sponsor_id", auth, async (req, res) => { + const { sponsor_id } = req.params; + const { status } = req.query; - var tokens = knex - .select( - 'token', - 'created_at', - knex.raw('LEFT(created_at,10) as created'), - 'username', - 'status' - ) - .from('referrals') - .leftJoin('users', 'users.id', 'referrals.user_id') - .where('sponsor_id', 'like', sponsor_id) + var tokens = knex + .select( + "token", + "created_at", + knex.raw("LEFT(created_at,10) as created"), + "username", + "status" + ) + .from("referrals") + .leftJoin("users", "users.id", "referrals.user_id") + .where("sponsor_id", "like", sponsor_id); - if (status && status !== 'all') tokens = tokens.where('status', 'like', status) - const found = await tokens - - return res.send({tokens: found}) - }) + if (status && status !== "all") + tokens = tokens.where("status", "like", status); + const found = await tokens; + return res.send({ tokens: found }); +}); /** * @api {get} /verify/:user_id Verify token and apply to existing user - * + * * @apiName verify * @apiGroup Referrals - * + * * @apiPermission member - * + * * @apiParam {user_id} Current user * @apiParam {token} Token to validate * @@ -165,42 +151,46 @@ router.get( * { * "verified": true * } - * + * * @apiDescription referral token is updated from 'available' to 'used' * @apiDescription referral token is updated with existing user_id */ -router.get( - "/verify/:user_id/:token", - auth, - async (req, res) => { - const { user_id, token } = req.params; +router.get("/verify/:user_id/:token", auth, async (req, res) => { + const { user_id, token } = req.params; - const found = await knex - .select('status') - .from('referrals') - .where('token', 'like', token) - .whereNull('user_id') + const found = await knex + .select("status") + .from("referrals") + .where("token", "like", token) + .whereNull("user_id"); - if (found && found.length) { - if (found[0].status === 'available') { - - await knex('referrals') - .where('token', 'like', token) - .update({ - status: 'used', + if (found && found.length) { + if (found[0].status === "available") { + await knex("referrals") + .where("token", "like", token) + .update({ + status: "used", user_id: user_id, - updated_at: new Date().toISOString().substring(0,10) - }) + updated_at: new Date().toISOString().substring(0, 10) + }); - return res.send({ verified: true, sponsor_id: found.sponsor_id, updated: found.updated_at}); - } else { - res.code(500).send({ verified: false, message: 'Referral already ' + found[0].status }) - } + return res.send({ + verified: true, + sponsor_id: found.sponsor_id, + updated: found.updated_at + }); } else { - res.code(500).send('Invalid referral token') + res + .code(500) + .send({ + verified: false, + message: "Referral already " + found[0].status + }); } - }) - + } else { + res.code(500).send("Invalid referral token"); + } +}); /** * @api {post} /joinQueue Join waiting list (track email & phone) @@ -217,39 +207,39 @@ router.get( * "success": true * "message": 'Added to waiting list' * } - * + * * @apiDescription referral token is updated from 'available' to 'used' * @apiDescription referral token is updated with existing user_id */ -router.post( - "/joinQueue", - async (req, res) => { - const { email, phone, user_id } = req.body; +router.post("/joinQueue", async (req, res) => { + const { email, phone, user_id } = req.body; - await knex.table('waiting_list') - .insert({ - email: email, - phone: phone, - user_id: user_id - }) + await knex.table("waiting_list").insert({ + email: email, + phone: phone, + user_id: user_id + }); - res.send({success: true, message: 'Added ' + email + ' to waiting list ' + phone}) - }) + res.send({ + success: true, + message: "Added " + email + " to waiting list " + phone + }); +}); -router.get( - "/joinQueue", - async (req, res) => { - const {email, phone, user_id} = req.query; +router.get("/joinQueue", async (req, res) => { + const { email, phone, user_id } = req.query; - await knex('waiting_list') - .insert({ - email: email, - phone: phone, - user_id: user_id - }) + await knex("waiting_list").insert({ + email: email, + phone: phone, + user_id: user_id + }); - res.send({success: true, message: 'Added ' + email + ' to waiting list ' + phone}) - }) + res.send({ + success: true, + message: "Added " + email + " to waiting list " + phone + }); +}); /** * @api {get} /isReferred/:user_id Check if user is referred @@ -263,24 +253,22 @@ router.get( * { * true * } - * + * * @apiDescription returns boolean indicating if user is referred or not */ -router.get( - "/isReferred/:user_id", - async (req, res) => { - const { user_id } = req.params; +router.get("/isReferred/:user_id", async (req, res) => { + const { user_id } = req.params; + + var referred = await knex("referrals") + .select("referrals.id") + .where("user_id", "like", user_id) + .where("status", "like", "used"); - var referred = await knex('referrals') - .select('referrals.id') - .where('user_id', 'like', user_id) - .where('status', 'like', 'used') - - if (referred && referred.length) { - res.send({referred: true}) - } else { - res.send({referred: false}) - } - }) + if (referred && referred.length) { + res.send({ referred: true }); + } else { + res.send({ referred: false }); + } +}); export default router; |
