aboutsummaryrefslogtreecommitdiffstats
path: root/routes/referrals.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-09-06 09:20:25 -0700
committerAdam Soltys <[email protected]>2022-09-06 09:20:25 -0700
commitc2464b2407ee23134732fd67586758dbfe18f9b5 (patch)
tree3e2d9f009bb325a9a7c4304ea02f6e64dda85bd1 /routes/referrals.js
parent8a080ef9a198799e7ee31cf81f92afd5495e4074 (diff)
downloadcoinos-server-c2464b2407ee23134732fd67586758dbfe18f9b5.tar.gz
coinos-server-c2464b2407ee23134732fd67586758dbfe18f9b5.zip
prettier
Diffstat (limited to 'routes/referrals.js')
-rw-r--r--routes/referrals.js270
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;