mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2026-03-22 12:37:13 +11:00
better error handling and speed improvements
This commit is contained in:
parent
8b7f125646
commit
15f2fbcfb6
5 changed files with 163 additions and 139 deletions
66
index.js
66
index.js
|
|
@ -137,6 +137,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
|||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
console.log(logsent);
|
||||
let logrec = logsent;
|
||||
let graphlog = logsent;
|
||||
if (graphlog != null) {
|
||||
|
|
@ -211,57 +212,47 @@ app.post("/sendfunds", async function (req, res) {
|
|||
req.session.successes = [];
|
||||
let a_name = req.session.user;
|
||||
let result;
|
||||
try {
|
||||
result = await client.sendFunds(a_name, senderpass, name, amount);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
console.log(result);
|
||||
if (result == true || result) {
|
||||
if (result == 1) {
|
||||
req.session.successes.push({ msg: "Transfer successful" });
|
||||
//post details
|
||||
res.redirect("/BankF");
|
||||
} else {
|
||||
req.session.errors.push({ msg: "Transfer Unsuccessful" });
|
||||
} else if (result == -1) {
|
||||
req.session.errors.push({ msg: "Transfer Unsuccessful: User not Found" });
|
||||
res.redirect("/Bankf");
|
||||
} else if (result == -2) {
|
||||
req.session.errors.push({ msg: "Transfer Unsuccessful: Wrong Password" });
|
||||
res.redirect("/Bankf");
|
||||
}
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
req.session.errors = [];
|
||||
req.session.successes = [];
|
||||
if (!checkuser) {
|
||||
if (!name || !password || !password2) {
|
||||
req.session.errors.push({ msg: "please fill in all fields" });
|
||||
}
|
||||
if (password !== password2) {
|
||||
} else if (password !== password2) {
|
||||
req.session.errors.push({ msg: "Passwords don't match" });
|
||||
}
|
||||
if (password.length < 6) {
|
||||
} else if (password.length < 6) {
|
||||
req.session.errors.push({
|
||||
msg: "Password must be at least 6 characters",
|
||||
});
|
||||
}
|
||||
if (req.session.errors[0]) {
|
||||
} else {
|
||||
let checkuser = await postUser(name, password);
|
||||
console.log(checkuser);
|
||||
if (checkuser == -4) {
|
||||
req.session.errors.push({ msg: "Error: Name too long" });
|
||||
res.redirect("/register");
|
||||
} else if (checkuser == -5) {
|
||||
req.session.errors.push({ msg: "Error: User Already Exists" });
|
||||
res.redirect("/register");
|
||||
} else {
|
||||
if (postUser(name, password)) {
|
||||
req.session.successes.push({ msg: "User Registered Please Log In" });
|
||||
req.session.successes.push({ msg: "Account Created! please Log in" });
|
||||
res.redirect("/login");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
req.session.errors.push({ msg: "User already exists" });
|
||||
res.redirect("/register");
|
||||
}
|
||||
});
|
||||
|
||||
app.post("/login", async function (req, res) {
|
||||
|
|
@ -272,11 +263,12 @@ app.post("/login", async function (req, res) {
|
|||
const { name, password } = req.body;
|
||||
let adminTest;
|
||||
try {
|
||||
adminTest = await client.adminVerifyPass(password);
|
||||
adminTest = await client.adminVerifyPassword(password);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (adminTest) {
|
||||
console.log(adminTest);
|
||||
if (adminTest != -2) {
|
||||
req.session.admin = adminTest;
|
||||
req.session.adminp = password;
|
||||
req.session.user = name;
|
||||
|
|
@ -284,20 +276,16 @@ app.post("/login", async function (req, res) {
|
|||
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 {
|
||||
console.log(verified);
|
||||
if (verified == 1) {
|
||||
req.session.user = name;
|
||||
req.session.password = password;
|
||||
res.redirect("/BankF");
|
||||
}
|
||||
} else {
|
||||
req.session.errors = [];
|
||||
req.session.errors.push({ msg: "Password wrong" });
|
||||
res.redirect("/login");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
|||
102
package-lock.json
generated
102
package-lock.json
generated
|
|
@ -8,7 +8,7 @@
|
|||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"ccash-client-js": "^1.6.2",
|
||||
"ccash-client-js": "^1.6.3",
|
||||
"connect-flash": "^0.1.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
|
|
@ -130,6 +130,11 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/validator": {
|
||||
"version": "13.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.4.tgz",
|
||||
"integrity": "sha512-19C02B8mr53HufY7S+HO/EHBD7a/R22IwEwyqiHaR19iwL37dN3o0M8RianVInfSSqP7InVSg/o0mUATM4JWsQ=="
|
||||
},
|
||||
"node_modules/accepts": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
|
||||
|
|
@ -275,14 +280,36 @@
|
|||
}
|
||||
},
|
||||
"node_modules/ccash-client-js": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.2.tgz",
|
||||
"integrity": "sha512-1U+QPvlIoFMsYD/Jz+2GncjdTB9pH+uiqKozdbE5wUNPWpBSfjYA6hc0iJAxypfsNR8mI2o5G0yIDdsoGhd5Cw==",
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.3.tgz",
|
||||
"integrity": "sha512-w6izW9L9l0G78BrRwVvP7tWFbmBekq+tepTmqK28+2lcczCaNvJnCDIqW9pQgZ6u9OjI9GX8bUteQu+7PbxiLA==",
|
||||
"dependencies": {
|
||||
"axios": "^0.21.1",
|
||||
"class-transformer": "^0.4.0"
|
||||
"class-validator": "^0.13.1",
|
||||
"debug": "^4.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/ccash-client-js/node_modules/debug": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||
"dependencies": {
|
||||
"ms": "2.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"supports-color": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/ccash-client-js/node_modules/ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"node_modules/character-parser": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||
|
|
@ -291,10 +318,15 @@
|
|||
"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/class-validator": {
|
||||
"version": "0.13.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz",
|
||||
"integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==",
|
||||
"dependencies": {
|
||||
"@types/validator": "^13.1.3",
|
||||
"libphonenumber-js": "^1.9.7",
|
||||
"validator": "^13.5.2"
|
||||
}
|
||||
},
|
||||
"node_modules/clone-response": {
|
||||
"version": "1.0.2",
|
||||
|
|
@ -834,6 +866,11 @@
|
|||
"json-buffer": "3.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/libphonenumber-js": {
|
||||
"version": "1.9.19",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.19.tgz",
|
||||
"integrity": "sha512-RjStfSE63LvXQEBw7pgQHPkY35z8feiMjC9wLvL1Hbt8PbhxpRrACwMXmLQgabb+IpVdcEx+olh8ll7UDXXkfA=="
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
|
|
@ -1768,6 +1805,11 @@
|
|||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/validator": {
|
||||
"version": "13.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.4.tgz",
|
||||
"integrity": "sha512-19C02B8mr53HufY7S+HO/EHBD7a/R22IwEwyqiHaR19iwL37dN3o0M8RianVInfSSqP7InVSg/o0mUATM4JWsQ=="
|
||||
},
|
||||
"accepts": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
|
||||
|
|
@ -1883,12 +1925,28 @@
|
|||
}
|
||||
},
|
||||
"ccash-client-js": {
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.2.tgz",
|
||||
"integrity": "sha512-1U+QPvlIoFMsYD/Jz+2GncjdTB9pH+uiqKozdbE5wUNPWpBSfjYA6hc0iJAxypfsNR8mI2o5G0yIDdsoGhd5Cw==",
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.3.tgz",
|
||||
"integrity": "sha512-w6izW9L9l0G78BrRwVvP7tWFbmBekq+tepTmqK28+2lcczCaNvJnCDIqW9pQgZ6u9OjI9GX8bUteQu+7PbxiLA==",
|
||||
"requires": {
|
||||
"axios": "^0.21.1",
|
||||
"class-transformer": "^0.4.0"
|
||||
"class-validator": "^0.13.1",
|
||||
"debug": "^4.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
|
||||
"integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"character-parser": {
|
||||
|
|
@ -1899,10 +1957,15 @@
|
|||
"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=="
|
||||
"class-validator": {
|
||||
"version": "0.13.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz",
|
||||
"integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==",
|
||||
"requires": {
|
||||
"@types/validator": "^13.1.3",
|
||||
"libphonenumber-js": "^1.9.7",
|
||||
"validator": "^13.5.2"
|
||||
}
|
||||
},
|
||||
"clone-response": {
|
||||
"version": "1.0.2",
|
||||
|
|
@ -2320,6 +2383,11 @@
|
|||
"json-buffer": "3.0.1"
|
||||
}
|
||||
},
|
||||
"libphonenumber-js": {
|
||||
"version": "1.9.19",
|
||||
"resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.19.tgz",
|
||||
"integrity": "sha512-RjStfSE63LvXQEBw7pgQHPkY35z8feiMjC9wLvL1Hbt8PbhxpRrACwMXmLQgabb+IpVdcEx+olh8ll7UDXXkfA=="
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"ccash-client-js": "^1.6.2",
|
||||
"ccash-client-js": "^1.6.3",
|
||||
"connect-flash": "^0.1.1",
|
||||
"dotenv": "^8.2.0",
|
||||
"express": "^4.17.1",
|
||||
|
|
|
|||
|
|
@ -54,51 +54,34 @@ 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;
|
||||
try {
|
||||
contains = await client.contains(name);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
req.session.errors = [];
|
||||
req.session.successes = [];
|
||||
if (contains == true) {
|
||||
errors.push({ msg: "User already exists" });
|
||||
res.render("adminsettings", {
|
||||
errors: errors,
|
||||
});
|
||||
} else {
|
||||
let { name, init_pass, init_bal, password2 } = req.body;
|
||||
if (!name || !init_pass || !init_bal || !password2) {
|
||||
req.session.errors.push({ msg: "please fill in all fields" });
|
||||
}
|
||||
//check if match
|
||||
if (init_pass !== password2) {
|
||||
} else if (init_pass !== password2) {
|
||||
req.session.errors.push({ msg: "Passwords don't match" });
|
||||
}
|
||||
|
||||
//check if password is more than 6 characters
|
||||
if (init_pass.length < 6) {
|
||||
} else if (init_pass.length < 6) {
|
||||
req.session.errors.push({
|
||||
msg: "Password must be at least 6 characters",
|
||||
});
|
||||
}
|
||||
let post;
|
||||
let successes = [];
|
||||
try {
|
||||
post = await client.adminAddUser(
|
||||
let post = await client.adminAddUser(
|
||||
name,
|
||||
req.session.adminp,
|
||||
init_pass,
|
||||
parseInt(init_bal)
|
||||
);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (post) {
|
||||
console.log(post);
|
||||
if (post == -3) {
|
||||
req.session.errors.push({ msg: "Invalid Request" });
|
||||
} else if (post == -4) {
|
||||
req.session.errors.push({ msg: "Name too long" });
|
||||
} else if (post == -5) {
|
||||
req.session.errors.push({ msg: "User already exists" });
|
||||
} else {
|
||||
req.session.successes.push({ msg: "Account Creation Successful" });
|
||||
}
|
||||
}
|
||||
res.redirect("/admin");
|
||||
});
|
||||
|
||||
|
|
@ -107,11 +90,8 @@ router.post("/baluser", checkAdmin, async function (req, res) {
|
|||
let balance;
|
||||
req.session.successes = [];
|
||||
req.session.errors = [];
|
||||
try {
|
||||
balance = await client.balance(name);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log(balance.body);
|
||||
balance = parseInt(balance);
|
||||
if (balance < 0) {
|
||||
req.session.errors.push({ msg: "User not found" });
|
||||
|
|
@ -128,36 +108,28 @@ router.post("/bal", checkAdmin, async function (req, res) {
|
|||
let patch;
|
||||
req.session.successes = [];
|
||||
req.session.errors = [];
|
||||
try {
|
||||
patch = await client.setBalance(name, req.session.adminp, parseInt(amount));
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
if (patch) {
|
||||
console.log(patch);
|
||||
if (patch == -1) {
|
||||
req.session.errors.push({ msg: "User not Found" });
|
||||
} else if (patch == 1) {
|
||||
req.session.successes.push({ msg: "Change Funds Successful" });
|
||||
}
|
||||
res.redirect("/admin");
|
||||
});
|
||||
|
||||
router.post("/userdelete", checkAdmin, async function (req, res) {
|
||||
let { name, attempt } = req.body;
|
||||
console.log(name);
|
||||
let contains;
|
||||
try {
|
||||
contains = await client.contains(name);
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
if (attempt != req.session.adminp) {
|
||||
req.session.errors.push({ msg: "Wrong Admin Password" });
|
||||
res.redirect("/admin");
|
||||
} else {
|
||||
console.log(contains);
|
||||
if (contains == 1) {
|
||||
let deleteUser = client.adminDeleteUser(name, attempt);
|
||||
req.session.successes.push({ msg: "User Deletion Successful" });
|
||||
if (deleteUser == -1) {
|
||||
req.session.errors.push({ msg: "User Deletion Failed, User Not Found" });
|
||||
res.redirect("/admin");
|
||||
} else {
|
||||
req.session.errors.push({ msg: "User Deletion Failed, User Not Found" });
|
||||
req.session.successes.push({ msg: "User Deletion Successful" });
|
||||
res.redirect("/admin");
|
||||
}
|
||||
}
|
||||
|
|
@ -168,7 +140,7 @@ router.post("/destroyallsessions", checkAdmin, async function (req, res) {
|
|||
let adminTest;
|
||||
req.session.errors = [];
|
||||
try {
|
||||
adminTest = await client.adminVerifyPass(attempt);
|
||||
adminTest = await client.adminVerifyPassword(attempt);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,13 +48,9 @@ router.post("/pass", ensureAuthenticated, async function (req, res) {
|
|||
console.log(req.session.errors);
|
||||
res.redirect("/settings");
|
||||
} else {
|
||||
try {
|
||||
patch = await client.changePassword(req.session.user, attempt, new_pass);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
console.log(patch);
|
||||
if (patch) {
|
||||
if (patch == -2) {
|
||||
req.session.errors.push({
|
||||
msg: "Password Wrong",
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in a new issue