From 7bf74a55b187924b002b699109979c022d35bd70 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Mon, 14 Jun 2021 17:15:08 +1000 Subject: [PATCH] lots of improvements --- helpers/functions.js | 15 ++--- index.js | 148 ++++++++++++++++------------------------- package-lock.json | 81 +++++++++++++++++++++-- package.json | 1 + routes/admin.js | 152 ++++++++++++++----------------------------- routes/settings.js | 32 ++++----- 6 files changed, 199 insertions(+), 230 deletions(-) diff --git a/helpers/functions.js b/helpers/functions.js index d72ed7e..c85bffe 100644 --- a/helpers/functions.js +++ b/helpers/functions.js @@ -1,18 +1,11 @@ -const got = require("got"); +const { CCashClient } = require("ccash-client-js"); + +const client = new CCashClient(process.env.BANKAPIURL); async function postUser(name, password) { console.log(process.env.BANKAPIURL); try { - const { body } = await got.post( - process.env.BANKAPIURL + "BankF/user/" + name, - { - headers: { - Password: password, - }, - responseType: "json", - } - ); - return body; + return await client.addUser(name, password); } catch (err) { console.log(err); } diff --git a/index.js b/index.js index 277f612..4287410 100644 --- a/index.js +++ b/index.js @@ -6,7 +6,7 @@ const bodyParser = require("body-parser"); const expressValidator = require("express-validator"); const flash = require("connect-flash"); const session = require("express-session"); -const { postUser } = require("./helpers/functions.js"); + const { ensureAuthenticated } = require("./config/auth.js"); const app = express(); const MemoryStore = require("memorystore")(session); @@ -15,8 +15,10 @@ const dotenv = require("dotenv"); const fs = require("fs"); let Log = require("./schemas/log.js"); const mongoose = require("mongoose"); +const { CCashClient } = require("ccash-client-js"); dotenv.config(); - +const { postUser } = require("./helpers/functions.js"); +const client = new CCashClient(process.env.BANKAPIURL); app.set("views", path.join(__dirname, "views")); app.set("view engine", "pug"); app.use(flash()); @@ -147,13 +149,13 @@ app.get("/", async function (req, res) { } else { let checkalive; try { - checkalive = await got(process.env.BANKAPIURL + "BankF/help"); + checkalive = await client.help(); } catch (err) { console.log(err); } let alive = false; try { - if (checkalive.body) { + if (checkalive) { alive = true; } } catch (err) { @@ -184,71 +186,56 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { } let balance = 0; try { - balance = await got( - process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" - ); - balance = JSON.parse(balance.body); + balance = await client.balance(req.session.user); } catch (err) { console.log(err); } let logsent; console.log("start " + Date.now()); try { - logsent = await got( - process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", - { - headers: { - Password: req.session.password, - }, - responseType: "json", - } - ); + const { user, password } = req.session; + logsent = await client.log(user, password); } catch (e) { console.log(e); } - console.log(logsent.body); + console.log(logsent); console.log("query finished " + Date.now()); - logsent = logsent.body; - logsent = logsent.value; let logrec = logsent; let graphlog = logsent; - if (graphlog != null) { + console.log(graphlog); + if (graphlog != 0 && graphlog != null) { graphlog = graphlog.reverse(); } - console.log(graphlog); let graphdata = ""; - let currentbal = balance.value; - if (graphlog != null) { - for (i = graphlog.length - 1; i > -1; i--) { + let currentbal = balance; + if (graphlog != 0 && graphlog != null) { + graphdata = + graphdata + ", [" + parseInt(graphlog.length) + "," + balance + "]"; + for (i = 0; i < graphlog.length; i++) { if (graphlog[i].from == req.session.user) { - currentbal = parseInt(currentbal) + parseInt(graphlog[i].amount); + currentbal = parseInt(currentbal) - parseInt(graphlog[i].amount); graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]"; } else { - currentbal = parseInt(currentbal) - parseInt(graphlog[i].amount); + currentbal = parseInt(currentbal) + parseInt(graphlog[i].amount); graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]"; } } - graphdata = - ", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata; console.log(balance); - graphdata = '["transaction", "balance"]' + graphdata; console.log(JSON.stringify(graphdata)); } else { graphlog = undefined; } if (graphdata != "") { - graphdata = - ", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata; graphdata = '["transaction", "balance"]' + graphdata; } console.log(balance); console.log(JSON.stringify(graphdata)); - if (logsent == 1 || logsent == -1 || logsent == null) { + if (logsent == null) { logsent = undefined; } else { logsent = await logsent.filter(({ from }) => from === req.session.user); } - if (logrec === 1 || logrec === -1 || logrec === null) { + if (logrec == null) { logrec = undefined; } else { logrec = await logrec.filter(({ to }) => to === req.session.user); @@ -277,7 +264,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { logrec: logrec, logsent: logsent, user: req.session.user, - balance: balance.value, + balance: balance, user: req.session.user, admin: req.session.admin, sucesses: successes, @@ -290,10 +277,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { app.post("/sendfunds", async function (req, res) { let balance = 0; try { - balance = await got( - process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" - ); - balance = JSON.parse(balance.body); + balance = await client.balance(req.session.user); } catch (err) { console.log(err); } @@ -302,17 +286,9 @@ app.post("/sendfunds", async function (req, res) { let successes = []; req.session.errors = []; let result = {}; - result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", { - json: { - a_name: a_name, - b_name: name, - amount: parseInt(amount), - attempt: senderpass, - }, - responseType: "json", - }); + result = await client.sendFunds(a_name, senderpass, name, parseInt(amount)); - if (result.body.value == true || result.body.value) { + if (result == true || result) { req.session.success = true; //post details res.redirect("/BankF"); @@ -324,12 +300,16 @@ app.post("/sendfunds", async function (req, res) { app.post("/register", async function (req, res) { var { name, password, password2 } = req.body; + let checkuser; + try { + checkuser = await client.contains(name); + } catch (e) { + console.log(e); + } - let checkuser = await got(process.env.BANKAPIURL + "BankF/contains/" + name); - checkuser = JSON.parse(checkuser.body).value; req.session.errors = []; req.session.successes = []; - if (checkuser == false) { + if (!checkuser) { if (!name || !password || !password2) { req.session.errors.push({ msg: "please fill in all fields" }); } @@ -360,51 +340,33 @@ app.post("/login", async function (req, res) { res.redirect("/"); } req.session.regenerate(function (err) {}); - let { name, password } = req.body; + const { name, password } = req.body; let adminTest; - req.session.errors = []; - let verified; try { - verified = await got( - process.env.BANKAPIURL + "BankF/" + name + "/pass/verify", - { - headers: { - Password: password, - }, - responseType: "json", - } - ); + adminTest = await client.adminVerifyPass(password); } catch (err) { console.log(err); - } finally { - if (verified.body.value == -2) { - req.session.errors.push({ msg: "Password wrong" }); - res.redirect("/login"); - } else if (verified.body.value == 1) { - console.log(name); - req.session.user = name; - req.session.password = password; - res.redirect("/BankF"); - } else if (verified.body.value == -1) { - req.session.errors = []; - req.session.errors.push({ msg: "User not found" }); - res.redirect("/login"); - } else if (verified.body.value == 0) { - console.log(verified.body.value + " Error on verified"); - try { - adminTest = await got(process.env.BANKAPIURL + "BankF/admin/verify", { - headers: { - Password: password, - }, - responseType: "json", - }); - } catch (err) { - console.log(err); - } - console.log(adminTest.body); - if (adminTest.body) { - req.session.admin = adminTest.body.value; - req.session.adminp = password; + } + if (adminTest) { + req.session.admin = adminTest; + req.session.adminp = password; + req.session.user = name; + req.session.password = password; + res.redirect("/BankF"); + } else { + let verified; + try { + verified = await client.verifyPassword(name, password); + } catch (err) { + console.log(err); + } finally { + if (!verified) { + req.session.errors = []; + req.session.errors.push({ msg: "Password wrong" }); + res.redirect("/login"); + } else { + req.session.user = name; + req.session.password = password; res.redirect("/BankF"); } } diff --git a/package-lock.json b/package-lock.json index 3301176..75d4abb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "ccash-client-js": "^1.6.0", "connect-flash": "^0.1.1", "dotenv": "^8.2.0", "express": "^4.17.1", @@ -167,6 +168,14 @@ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" }, + "node_modules/axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "dependencies": { + "follow-redirects": "^1.10.0" + } + }, "node_modules/babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -265,6 +274,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ccash-client-js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.0.tgz", + "integrity": "sha512-uNLrecsFLS4S3EIzeShnOrcIPYub36K1vG/dq13EL8V76UWeaWB3iWZEO8l2h6VQTXrfSa9PmM/+rAb3BQcahQ==", + "dependencies": { + "axios": "^0.21.1", + "class-transformer": "^0.4.0" + } + }, "node_modules/character-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", @@ -273,6 +291,11 @@ "is-regex": "^1.0.3" } }, + "node_modules/class-transformer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz", + "integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA==" + }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -560,6 +583,25 @@ "node": ">= 0.8" } }, + "node_modules/follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -1053,9 +1095,9 @@ } }, "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "engines": { "node": ">=8" } @@ -1755,6 +1797,14 @@ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" }, + "axios": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", + "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, "babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -1832,6 +1882,15 @@ "get-intrinsic": "^1.0.2" } }, + "ccash-client-js": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.0.tgz", + "integrity": "sha512-uNLrecsFLS4S3EIzeShnOrcIPYub36K1vG/dq13EL8V76UWeaWB3iWZEO8l2h6VQTXrfSa9PmM/+rAb3BQcahQ==", + "requires": { + "axios": "^0.21.1", + "class-transformer": "^0.4.0" + } + }, "character-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", @@ -1840,6 +1899,11 @@ "is-regex": "^1.0.3" } }, + "class-transformer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz", + "integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA==" + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -2070,6 +2134,11 @@ "unpipe": "~1.0.0" } }, + "follow-redirects": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", + "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==" + }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -2426,9 +2495,9 @@ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" }, "object-assign": { "version": "4.1.1", diff --git a/package.json b/package.json index 94bd68a..447c995 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "dependencies": { + "ccash-client-js": "^1.6.0", "connect-flash": "^0.1.1", "dotenv": "^8.2.0", "express": "^4.17.1", diff --git a/routes/admin.js b/routes/admin.js index 7033bc3..dfd81d6 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -12,6 +12,9 @@ const got = require("got"); const MemoryStore = require("memorystore")(session); const fs = require("fs"); const mongoose = require("mongoose"); +const { CCashClient } = require("ccash-client-js"); + +const client = new CCashClient(process.env.BANKAPIURL); console.log("Sen was here"); function mongo() { @@ -36,9 +39,14 @@ function mongo() { } router.get("/", checkAdmin, function (req, res) { + let successes = req.session.successes; + let errors = req.session.errors; + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, + errors: errors, + successes: successes, marketplace: process.env.MARKETPLACE, random: papy(), }); @@ -46,10 +54,9 @@ router.get("/", checkAdmin, function (req, res) { router.post("/user", checkAdmin, async function (req, res) { let { name, init_pass, init_bal, password2 } = req.body; - let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); - contains = JSON.parse(contains.body).value; - let errors = []; - let successes = []; + let contains = await client.contains(name); + req.session.errors = []; + req.session.successes = []; if (contains == true) { errors.push({ msg: "User already exists" }); res.render("adminsettings", { @@ -57,165 +64,111 @@ router.post("/user", checkAdmin, async function (req, res) { }); } else { if (!name || !init_pass || !init_bal || !password2) { - errors.push({ msg: "please fill in all fields" }); + req.session.errors.push({ msg: "please fill in all fields" }); } //check if match if (init_pass !== password2) { - errors.push({ msg: "Passwords don't match" }); + req.session.errors.push({ msg: "Passwords don't match" }); } //check if password is more than 6 characters if (init_pass.length < 6) { - errors.push({ msg: "Password must be at least 6 characters" }); + req.session.errors.push({ + msg: "Password must be at least 6 characters", + }); } let post; let successes = []; try { - post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", { - json: { - name: name, - attempt: req.session.adminp, - init_bal: parseInt(init_bal), - init_pass: init_pass, - }, - responseType: "json", - }); + post = await client.adminAddUser( + name, + req.session.adminp, + init_pass, + parseInt(init_bal) + ); } catch (err) { console.log(err); } - if (post.body.value == true) { + if (post) { successes.push({ msg: "Account Creation Successful" }); } } - res.render("adminsettings", { - user: req.session.user, - admin: req.session.admin, - successes: successes, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + res.redirect("/admin"); }); router.post("/baluser", checkAdmin, async function (req, res) { let { name } = req.body; let balance; - let successes = []; - let errors = []; + req.session.successes = []; + req.session.errors = []; try { - balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal"); - balance = JSON.parse(balance.body); + balance = await client.balance(name); } catch (err) { console.log(err); } - if (balance.value == -1 || balance.value == undefined) { - errors.push({ msg: "User not found" }); + balance = parseInt(balance); + console.log(balance); + if (balance < 0) { + req.session.errors.push({ msg: "User not found" }); } else { - successes.push({ + req.session.successes.push({ msg: "User: " + name + " has " + balance.value + " monies", }); } - res.render("adminsettings", { - user: req.session.user, - admin: req.session.admin, - successes: successes, - errors: errors, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + res.redirect("/admin"); }); router.post("/bal", checkAdmin, async function (req, res) { let { name, amount } = req.body; let patch; - let successes = []; + req.session.successes = []; + req.session.errors = []; try { - patch = await got.patch( - process.env.BANKAPIURL + "BankF/admin/" + name + "/bal", - { - json: { - name: name, - attempt: req.session.adminp, - amount: parseInt(amount), - }, - responseType: "json", - } - ); + patch = await client.setBalance(name, req.session.adminp, parseInt(amount)); } catch (err) { console.log(err); } - if ((await patch.body.value) == true) { - successes.push({ msg: "Change Funds Successful" }); + if (patch) { + req.session.successes.push({ msg: "Change Funds Successful" }); } - res.render("adminsettings", { - user: req.session.user, - admin: req.session.admin, - successes: successes, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + res.redirect("/admin"); }); router.post("/userdelete", checkAdmin, async function (req, res) { let { name, attempt } = req.body; console.log(name); - let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name); - contains = JSON.parse(contains.body).value; + let contains = await client.contains(name); let deleteUser; let successes = []; let errors = []; if (attempt != req.session.adminp) { - errors.push({ msg: "Wrong Admin Password" }); + req.session.errors.push({ msg: "Wrong Admin Password" }); } console.log(contains); if (contains == true) { - deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", { - json: { - name: name, - attempt: attempt, - }, - responseType: "json", - }); - successes.push({ msg: "User Deletion Successful" }); + deleteUser = client.adminDeleteUser(name, attempt); + req.session.successes.push({ msg: "User Deletion Successful" }); } else { - errors.push({ msg: "User Deletion Failed, User Not Found" }); + req.session.errors.push({ msg: "User Deletion Failed, User Not Found" }); } - res.render("adminsettings", { - user: req.session.user, - admin: req.session.admin, - successes: successes, - errors: errors, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + res.redirect("/admin"); }); router.post("/destroyallsessions", checkAdmin, async function (req, res) { let { attempt } = req.body; let adminTest; - let errors = []; + req.session.errors = []; try { - adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { - json: { - attempt: attempt, - }, - responseType: "json", - }); + adminTest = await client.adminVerifyPass(attempt); } catch (err) { console.log(err); } - console.log(adminTest.body.value); if (adminTest) { req.sessionStore.clear(function (err) { console.log(err); }); res.redirect("/"); } else { - errors.push({ msg: "failed admin password check" }); - res.render("adminsettings", { - user: req.session.user, - admin: req.session.admin, - errors: errors, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + req.session.errors.push({ msg: "failed admin password check" }); + res.redirect("/admin"); } }); @@ -279,12 +232,7 @@ router.post("/mongodb", checkAdmin, async function (req, res) { router.post("/close", checkAdmin, async function (req, res) { let { attempt } = req.body; let close; - close = got.post(process.env.BANKAPIURL + "BankF/admin/close", { - json: { - attempt: attempt, - }, - responseType: "json", - }); + close = client.close(); res.redirect("../"); }); function papy() { diff --git a/routes/settings.js b/routes/settings.js index ed7e62f..c93590e 100644 --- a/routes/settings.js +++ b/routes/settings.js @@ -8,7 +8,9 @@ const flash = require("connect-flash"); const expressValidator = require("express-validator"); const session = require("express-session"); const { postUser } = require("../helpers/functions.js"); -const got = require("got"); +const { CCashClient } = require("ccash-client-js"); + +const client = new CCashClient(process.env.BANKAPIURL); router.get("/", ensureAuthenticated, function (req, res) { let successes = req.session.successes; @@ -27,7 +29,10 @@ router.get("/", ensureAuthenticated, function (req, res) { router.post("/pass", ensureAuthenticated, async function (req, res) { let { attempt, new_pass, password2 } = req.body; let patch; - if (!attempt || !new_pass || !password2) { + if (attempt == undefined) { + attempt = ""; + } + if (!new_pass || !password2) { req.session.errors.push({ msg: "please fill in all fields" }); } //check if match @@ -44,31 +49,22 @@ router.post("/pass", ensureAuthenticated, async function (req, res) { res.redirect("/settings"); } else { try { - patch = await got.patch(process.env.BANKAPIURL + "BankF/changepass", { - json: { - name: req.session.user, - attempt: attempt, - new_pass: new_pass, - }, - responseType: "json", - }); + patch = await client.changePassword(req.session.user, attempt, new_pass); } catch (err) { console.log(err); } - console.log(patch.body); - if (patch.body.value == 0) { + console.log(patch); + if (patch) { req.session.errors.push({ msg: "Password Wrong", }); res.redirect("/settings"); } else { req.session.regenerate(function (err) { - if (patch.body.value == 1) { - req.session.successes = []; - req.session.successes.push({ - msg: "Change Password Successful, Please Login Again", - }); - } + req.session.successes = []; + req.session.successes.push({ + msg: "Change Password Successful, Please Login Again", + }); res.redirect("/login"); }); }