aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2021-05-12 00:15:50 -0400
committerAdam Soltys <[email protected]>2021-05-12 00:15:50 -0400
commit89519c0cd1cafeea9939110b99bcf865ffe617a0 (patch)
tree2be35d8fb0c36e18260ace5361b7e980554dcb2b
parent38ba24080dd50b1993772ba822c3db83876c4fd3 (diff)
downloadcoinos-server-89519c0cd1cafeea9939110b99bcf865ffe617a0.tar.gz
coinos-server-89519c0cd1cafeea9939110b99bcf865ffe617a0.zip
kyc notification
-rw-r--r--routes/funding.js165
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}`,
+ };
+
+ 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");
+ }
+ })
+);