diff options
| author | Adam Soltys <[email protected]> | 2021-05-12 00:15:50 -0400 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2021-05-12 00:15:50 -0400 |
| commit | 89519c0cd1cafeea9939110b99bcf865ffe617a0 (patch) | |
| tree | 2be35d8fb0c36e18260ace5361b7e980554dcb2b | |
| parent | 38ba24080dd50b1993772ba822c3db83876c4fd3 (diff) | |
| download | coinos-server-89519c0cd1cafeea9939110b99bcf865ffe617a0.tar.gz coinos-server-89519c0cd1cafeea9939110b99bcf865ffe617a0.zip | |
kyc notification
| -rw-r--r-- | routes/funding.js | 165 |
1 files changed, 98 insertions, 67 deletions
diff --git a/routes/funding.js b/routes/funding.js index d9af4da7..8d94344e 100644 --- a/routes/funding.js +++ b/routes/funding.js @@ -1,3 +1,4 @@ +const mailgun = require("mailgun-js")(config.mailgun); const multer = require("multer"); const storage = multer.diskStorage({ @@ -6,8 +7,8 @@ const storage = multer.diskStorage({ }, filename: (req, file, cb) => { const parts = file.originalname.split("."); - const ext = parts.length > 1 ? parts[parts.length - 1] : 'bin'; - cb(null, `${req.user.username}-${file.fieldname}.${ext}`) + const ext = parts.length > 1 ? parts[parts.length - 1] : "bin"; + cb(null, `${req.user.username}-${file.fieldname}.${ext}`); } }); @@ -21,80 +22,110 @@ const upload = multer({ } }); -app.post("/id", auth, upload.single("id"), ah(async (req, res) => { - const { user } = req; - if (user.verified === 'proof') user.verified = 'pending'; - else user.verified = 'id'; - await user.save(); - emit(user.username, "user", user); +app.post( + "/id", + auth, + upload.single("id"), + ah(async (req, res) => { + const { user } = req; + if (user.verified === "proof") user.verified = "pending"; + else user.verified = "id"; + await user.save(); + emit(user.username, "user", user); - res.end(); -})); + let data = { + ...config.mail, + subject: "KYC Documents", + text: `ID uploaded for ${user.username}`, + from: "[email protected]", + to: "[email protected]" + }; + + mailgun.messages().send(data); + + res.end(); + }) +); -app.post("/proof", auth, upload.single("proof"), ah(async (req, res) => { - const { user } = req; - if (user.verified === 'id') user.verified = 'pending'; - else user.verified = 'proof'; - await user.save(); - emit(user.username, "user", user); +app.post( + "/proof", + auth, + upload.single("proof"), + ah(async (req, res) => { + const { user } = req; + if (user.verified === "id") user.verified = "pending"; + else user.verified = "proof"; + await user.save(); + emit(user.username, "user", user); - res.end(); -})); + res.end(); + }) +); -app.post("/funding", auth, ah(async (req, res) => { - try { - let { id, amount, code } = req.body; +app.post( + "/funding", + auth, + ah(async (req, res) => { + try { + let { id, amount, code } = req.body; - if (!code) { - code = ''; - let d = 'ABCDEFGHIJKLMNPQRSTUVWXYZ23456789'; - let l = d.length; - for (let i = 0; i < 8; i++) { - code += d.charAt(Math.floor(Math.random() * l)); + if (!code) { + code = ""; + let d = "ABCDEFGHIJKLMNPQRSTUVWXYZ23456789"; + let l = d.length; + for (let i = 0; i < 8; i++) { + code += d.charAt(Math.floor(Math.random() * l)); + } } - } - let params = { - user_id: req.user.id, - amount, - code, - }; + let params = { + user_id: req.user.id, + amount, + code + }; - let deposit; - if (id) { - if (!parseFloat(amount) || parseFloat(amount) < 0) throw new Error("Invalid amount"); - deposit = await db.Deposit.findOne({ where: { id } }) - deposit.update(params); - await deposit.save(); - } else { - deposit = await db.Deposit.create(params); - } + let deposit; + if (id) { + if (!parseFloat(amount) || parseFloat(amount) < 0) + throw new Error("Invalid amount"); + deposit = await db.Deposit.findOne({ where: { id } }); + deposit.update(params); + await deposit.save(); + } else { + deposit = await db.Deposit.create(params); + } - res.send(deposit); - } catch(e) { - l.error("funding error", e.message); - res.status(500).send("Funding request failed"); - } -})); + res.send(deposit); + } catch (e) { + l.error("funding error", e.message); + res.status(500).send("Funding request failed"); + } + }) +); -app.post("/withdrawal", auth, ah(async (req, res) => { - try { - const { account, amount, email, institution, transit, notes } = req.body; - if (!parseFloat(amount) || parseFloat(amount) < 0) throw new Error("Invalid amount"); +app.post( + "/withdrawal", + auth, + ah(async (req, res) => { + try { + const { account, amount, email, institution, transit, notes } = req.body; + if (!parseFloat(amount) || parseFloat(amount) < 0) + throw new Error("Invalid amount"); - await db.Withdrawal.create({ - user_id: req.user.id, - account, - amount, - email, - institution, - transit, - notes, - }); + await db.Withdrawal.create({ + user_id: req.user.id, + account, + amount, + email, + institution, + transit, + notes + }); - res.end(); - } catch(e) { - l.error("withdrawal error", e.message); - res.status(500).send("Withdrawal request failed"); - } -})); + res.end(); + } catch (e) { + l.error("withdrawal error", e.message); + res.status(500).send("Withdrawal request failed"); + } + }) +); |
