aboutsummaryrefslogtreecommitdiffstats
path: root/routes/users.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-12-15 13:35:12 -0800
committerAdam Soltys <[email protected]>2022-12-15 13:35:12 -0800
commite8525c6b4402346b5e19d7dd40d79e076a95941f (patch)
tree630170b191d1174eff9942a7a1e9c5075f13217f /routes/users.js
parent7809a9b0cb8c5f504b48f39c20aa21e0a628cdc5 (diff)
downloadcoinos-server-e8525c6b4402346b5e19d7dd40d79e076a95941f.tar.gz
coinos-server-e8525c6b4402346b5e19d7dd40d79e076a95941f.zip
move voucher endpoints
Diffstat (limited to 'routes/users.js')
-rw-r--r--routes/users.js102
1 files changed, 0 insertions, 102 deletions
diff --git a/routes/users.js b/routes/users.js
index 02e7e3ed..c4b613eb 100644
--- a/routes/users.js
+++ b/routes/users.js
@@ -7,7 +7,6 @@ import axios from "axios";
import bcrypt from "bcrypt";
import jwt from "jsonwebtoken";
import { authenticator } from "otplib";
-import getAccount from "$lib/account";
import Sequelize from "@sequelize/core";
import bitcoin from "bitcoinjs-lib";
import liquid from "liquidjs-lib";
@@ -489,107 +488,6 @@ app.post("/subscribe", auth, async function(req, res) {
res.sendStatus(201);
});
-let redeeming = {};
-app.post("/redeem", optionalAuth, async function(req, res) {
- const { redeemcode } = req.body;
- try {
- await db.transaction(async transaction => {
- if (redeeming[redeemcode]) fail("redemption in progress");
- redeeming[redeemcode] = true;
- if (!redeemcode) fail("no code provided");
-
- let { user } = req;
-
- const source = await db.Payment.findOne({
- where: {
- redeemcode: req.body.redeemcode
- },
- include: {
- model: db.Account,
- as: "account"
- },
- lock: transaction.LOCK.UPDATE,
- transaction
- });
-
- l("redeeming", redeemcode);
-
- if (!source) fail("Invalid code");
- if (source.redeemed) fail("Voucher has already been redeemed");
- let { amount } = source;
- amount = -amount;
-
- if (!user) {
- const ip =
- req.headers["x-forwarded-for"] || req.connection.remoteAddress;
-
- user = await register(
- {
- username: redeemcode.substr(0, 8),
- password: ""
- },
- ip,
- false
- );
-
- let payload = { username: user.username };
- let token = jwt.sign(payload, config.jwt);
- res.cookie("token", token, {
- expires: new Date(Date.now() + 432000000)
- });
-
- delete redeeming[redeemcode];
- return res.send({ user });
- }
-
- let account = await getAccount(source.account.asset, user, transaction);
- let { hash, memo, confirmed, fee, network } = source;
-
- source.redeemed = true;
- await source.save({ transaction });
-
- let payment = await db.Payment.create(
- {
- amount,
- account_id: account.id,
- user_id: user.id,
- hash: "Voucher " + redeemcode,
- memo,
- rate: store.rates[user.currency],
- currency: user.currency,
- confirmed,
- network,
- received: true,
- fee
- },
- { transaction }
- );
-
- await account.increment({ balance: amount }, { transaction });
- await account.reload({ transaction });
-
- payment = payment.get({ plain: true });
- payment.account = account.get({ plain: true });
- emit(user.username, "payment", payment);
- emit(user.username, "account", account);
-
- res.send({ payment });
- });
- } catch (e) {
- delete redeeming[redeemcode];
- console.log(e);
- err("problem redeeming", e.message);
- return res.code(500).send("There was a problem redeeming the voucher");
- }
-});
-
-app.post("/checkRedeemCode", auth, async function(req, res) {
- const { redeemcode } = req.body;
-
- const payment = await db.Payment.findOne({ where: { redeemcode } });
- res.send(payment);
-});
-
app.post("/password", auth, async function(req, res) {
const { user } = req;
const { password } = req.body;