diff options
| author | Adam Soltys <[email protected]> | 2022-08-23 15:53:10 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-08-23 15:53:10 -0700 |
| commit | 906a72dc7db448848587bf5bc36c0d8caf7ef7cc (patch) | |
| tree | 24e422b9875674c84701e922b3aed9363edfc298 | |
| parent | e78c557feb3c0ea0068758cd2d560fff66823736 (diff) | |
| download | coinos-server-906a72dc7db448848587bf5bc36c0d8caf7ef7cc.tar.gz coinos-server-906a72dc7db448848587bf5bc36c0d8caf7ef7cc.zip | |
enable vouchers
| -rw-r--r-- | routes/send.js | 1 | ||||
| -rw-r--r-- | routes/users.js | 8 |
2 files changed, 8 insertions, 1 deletions
diff --git a/routes/send.js b/routes/send.js index 4c8afa34..653da87b 100644 --- a/routes/send.js +++ b/routes/send.js @@ -66,7 +66,6 @@ module.exports = ah(async (req, res, next) => { }; if (!username) { - throw new Error("Vouchers temporarily disabled"); l.info("creating redeemable payment"); params.redeemcode = uuidv4(); params.hash = `${req.get("origin")}/redeem/${params.redeemcode}`; diff --git a/routes/users.js b/routes/users.js index 4fe1362b..c9367c9a 100644 --- a/routes/users.js +++ b/routes/users.js @@ -634,12 +634,16 @@ app.post( }) ); +let redeeming = {}; app.post( "/redeem", optionalAuth, ah(async function(req, res) { + try { await db.transaction(async transaction => { const { redeemcode } = req.body; + if (redeeming[redeemcode]) fail("redemption in progress"); + redeeming[redeemcode] = true; if (!redeemcode) fail("no code provided"); let { user } = req; @@ -652,6 +656,7 @@ app.post( model: db.Account, as: "account" }, + lock: transaction.LOCK.UPDATE, transaction }); @@ -717,6 +722,9 @@ app.post( res.send({ payment }); }); + } catch(e) { + l.error("problem redeeming", e.message); + return res.status(500).send("There was a problem redeeming the voucher"); }) ); |
