diff options
| author | Adam Soltys <[email protected]> | 2020-10-24 22:13:47 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2020-10-24 22:33:52 -0700 |
| commit | 12091db2a92bc52e3ae97eab98a4d9f7c1a3dd08 (patch) | |
| tree | e8767781dbd19d62f089277c1bc979ac97aeae48 /routes | |
| parent | ae9e9e0fa9cffd2545aa210321b34ce2bb5c4b8b (diff) | |
| download | coinos-server-12091db2a92bc52e3ae97eab98a4d9f7c1a3dd08.tar.gz coinos-server-12091db2a92bc52e3ae97eab98a4d9f7c1a3dd08.zip | |
funding and withdrawals
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/assets.js | 8 | ||||
| -rw-r--r-- | routes/funding.js | 82 | ||||
| -rw-r--r-- | routes/swaps.js | 2 |
3 files changed, 89 insertions, 3 deletions
diff --git a/routes/assets.js b/routes/assets.js index 52509cd9..324acb7b 100644 --- a/routes/assets.js +++ b/routes/assets.js @@ -26,10 +26,14 @@ app.get( group: ["asset"] }); - Object.keys(assets).map(a => (assets[a].registered = true)); + Object.keys(assets).map(a => { + assets[a].registered = true; + assets[a].asset = assets[a].asset_id; + }); accounts.map(a => { - if (!assets[a.asset]) assets[a.asset] = a; + if (!a.asset) console.log(a.id); + if (!assets[a.asset]) assets[a.asset] = a.get({ plain: true }); }); res.send(assets); diff --git a/routes/funding.js b/routes/funding.js new file mode 100644 index 00000000..3a5f30e0 --- /dev/null +++ b/routes/funding.js @@ -0,0 +1,82 @@ +const multer = require("multer"); + +const storage = multer.diskStorage({ + destination: (req, file, cb) => { + cb(null, "uploads"); + }, + 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 upload = multer({ + storage, + onFileUploadStart: (file, req, res) => { + const maxSize = 32 * 1000 * 1000; + if (req.files.file.length > maxSize) { + return false; + } + } +}); + +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(); +})); + +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(); +})); + +app.post("/funding", auth, ah(async (req, res) => { + try { + const { amount, code } = req.body; + if (!parseFloat(amount) || parseFloat(amount) < 0) throw new Error("Invalid amount"); + + await db.Deposit.create({ + user_id: req.user.id, + amount, + code, + }); + + res.end(); + } 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"); + + 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"); + } +})); diff --git a/routes/swaps.js b/routes/swaps.js index 10beb0b2..e12dd450 100644 --- a/routes/swaps.js +++ b/routes/swaps.js @@ -1000,4 +1000,4 @@ setInterval(async () => { } } }); -}, 20000); +}, 2000); |
