mirror of
https://github.com/Expand-sys/ccashfrontend
synced 2026-03-22 12:37:13 +11:00
lots of improvements
This commit is contained in:
parent
2610c74cd4
commit
7bf74a55b1
6 changed files with 199 additions and 230 deletions
|
|
@ -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) {
|
async function postUser(name, password) {
|
||||||
console.log(process.env.BANKAPIURL);
|
console.log(process.env.BANKAPIURL);
|
||||||
try {
|
try {
|
||||||
const { body } = await got.post(
|
return await client.addUser(name, password);
|
||||||
process.env.BANKAPIURL + "BankF/user/" + name,
|
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
Password: password,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
return body;
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
138
index.js
138
index.js
|
|
@ -6,7 +6,7 @@ const bodyParser = require("body-parser");
|
||||||
const expressValidator = require("express-validator");
|
const expressValidator = require("express-validator");
|
||||||
const flash = require("connect-flash");
|
const flash = require("connect-flash");
|
||||||
const session = require("express-session");
|
const session = require("express-session");
|
||||||
const { postUser } = require("./helpers/functions.js");
|
|
||||||
const { ensureAuthenticated } = require("./config/auth.js");
|
const { ensureAuthenticated } = require("./config/auth.js");
|
||||||
const app = express();
|
const app = express();
|
||||||
const MemoryStore = require("memorystore")(session);
|
const MemoryStore = require("memorystore")(session);
|
||||||
|
|
@ -15,8 +15,10 @@ const dotenv = require("dotenv");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
let Log = require("./schemas/log.js");
|
let Log = require("./schemas/log.js");
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
|
const { CCashClient } = require("ccash-client-js");
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
const { postUser } = require("./helpers/functions.js");
|
||||||
|
const client = new CCashClient(process.env.BANKAPIURL);
|
||||||
app.set("views", path.join(__dirname, "views"));
|
app.set("views", path.join(__dirname, "views"));
|
||||||
app.set("view engine", "pug");
|
app.set("view engine", "pug");
|
||||||
app.use(flash());
|
app.use(flash());
|
||||||
|
|
@ -147,13 +149,13 @@ app.get("/", async function (req, res) {
|
||||||
} else {
|
} else {
|
||||||
let checkalive;
|
let checkalive;
|
||||||
try {
|
try {
|
||||||
checkalive = await got(process.env.BANKAPIURL + "BankF/help");
|
checkalive = await client.help();
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
let alive = false;
|
let alive = false;
|
||||||
try {
|
try {
|
||||||
if (checkalive.body) {
|
if (checkalive) {
|
||||||
alive = true;
|
alive = true;
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
@ -184,71 +186,56 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
||||||
}
|
}
|
||||||
let balance = 0;
|
let balance = 0;
|
||||||
try {
|
try {
|
||||||
balance = await got(
|
balance = await client.balance(req.session.user);
|
||||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
|
|
||||||
);
|
|
||||||
balance = JSON.parse(balance.body);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
let logsent;
|
let logsent;
|
||||||
console.log("start " + Date.now());
|
console.log("start " + Date.now());
|
||||||
try {
|
try {
|
||||||
logsent = await got(
|
const { user, password } = req.session;
|
||||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
|
logsent = await client.log(user, password);
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
Password: req.session.password,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
console.log(logsent.body);
|
console.log(logsent);
|
||||||
console.log("query finished " + Date.now());
|
console.log("query finished " + Date.now());
|
||||||
logsent = logsent.body;
|
|
||||||
logsent = logsent.value;
|
|
||||||
let logrec = logsent;
|
let logrec = logsent;
|
||||||
let graphlog = logsent;
|
let graphlog = logsent;
|
||||||
if (graphlog != null) {
|
console.log(graphlog);
|
||||||
|
if (graphlog != 0 && graphlog != null) {
|
||||||
graphlog = graphlog.reverse();
|
graphlog = graphlog.reverse();
|
||||||
}
|
}
|
||||||
console.log(graphlog);
|
|
||||||
let graphdata = "";
|
let graphdata = "";
|
||||||
let currentbal = balance.value;
|
let currentbal = balance;
|
||||||
if (graphlog != null) {
|
if (graphlog != 0 && graphlog != null) {
|
||||||
for (i = graphlog.length - 1; i > -1; i--) {
|
graphdata =
|
||||||
|
graphdata + ", [" + parseInt(graphlog.length) + "," + balance + "]";
|
||||||
|
for (i = 0; i < graphlog.length; i++) {
|
||||||
if (graphlog[i].from == req.session.user) {
|
if (graphlog[i].from == req.session.user) {
|
||||||
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 = graphdata + ", [" + parseInt(i) + "," + currentbal + "]";
|
||||||
|
} else {
|
||||||
|
currentbal = parseInt(currentbal) + parseInt(graphlog[i].amount);
|
||||||
|
graphdata = graphdata + ", [" + parseInt(i) + "," + currentbal + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
graphdata =
|
|
||||||
", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata;
|
|
||||||
console.log(balance);
|
console.log(balance);
|
||||||
graphdata = '["transaction", "balance"]' + graphdata;
|
|
||||||
console.log(JSON.stringify(graphdata));
|
console.log(JSON.stringify(graphdata));
|
||||||
} else {
|
} else {
|
||||||
graphlog = undefined;
|
graphlog = undefined;
|
||||||
}
|
}
|
||||||
if (graphdata != "") {
|
if (graphdata != "") {
|
||||||
graphdata =
|
|
||||||
", [" + parseInt(graphlog.length) + "," + balance.value + "]" + graphdata;
|
|
||||||
graphdata = '["transaction", "balance"]' + graphdata;
|
graphdata = '["transaction", "balance"]' + graphdata;
|
||||||
}
|
}
|
||||||
console.log(balance);
|
console.log(balance);
|
||||||
console.log(JSON.stringify(graphdata));
|
console.log(JSON.stringify(graphdata));
|
||||||
if (logsent == 1 || logsent == -1 || logsent == null) {
|
if (logsent == null) {
|
||||||
logsent = undefined;
|
logsent = undefined;
|
||||||
} else {
|
} else {
|
||||||
logsent = await logsent.filter(({ from }) => from === req.session.user);
|
logsent = await logsent.filter(({ from }) => from === req.session.user);
|
||||||
}
|
}
|
||||||
if (logrec === 1 || logrec === -1 || logrec === null) {
|
if (logrec == null) {
|
||||||
logrec = undefined;
|
logrec = undefined;
|
||||||
} else {
|
} else {
|
||||||
logrec = await logrec.filter(({ to }) => to === req.session.user);
|
logrec = await logrec.filter(({ to }) => to === req.session.user);
|
||||||
|
|
@ -277,7 +264,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
||||||
logrec: logrec,
|
logrec: logrec,
|
||||||
logsent: logsent,
|
logsent: logsent,
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
balance: balance.value,
|
balance: balance,
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
admin: req.session.admin,
|
admin: req.session.admin,
|
||||||
sucesses: successes,
|
sucesses: successes,
|
||||||
|
|
@ -290,10 +277,7 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) {
|
||||||
app.post("/sendfunds", async function (req, res) {
|
app.post("/sendfunds", async function (req, res) {
|
||||||
let balance = 0;
|
let balance = 0;
|
||||||
try {
|
try {
|
||||||
balance = await got(
|
balance = await client.balance(req.session.user);
|
||||||
process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
|
|
||||||
);
|
|
||||||
balance = JSON.parse(balance.body);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
|
|
@ -302,17 +286,9 @@ app.post("/sendfunds", async function (req, res) {
|
||||||
let successes = [];
|
let successes = [];
|
||||||
req.session.errors = [];
|
req.session.errors = [];
|
||||||
let result = {};
|
let result = {};
|
||||||
result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", {
|
result = await client.sendFunds(a_name, senderpass, name, parseInt(amount));
|
||||||
json: {
|
|
||||||
a_name: a_name,
|
|
||||||
b_name: name,
|
|
||||||
amount: parseInt(amount),
|
|
||||||
attempt: senderpass,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
|
|
||||||
if (result.body.value == true || result.body.value) {
|
if (result == true || result) {
|
||||||
req.session.success = true;
|
req.session.success = true;
|
||||||
//post details
|
//post details
|
||||||
res.redirect("/BankF");
|
res.redirect("/BankF");
|
||||||
|
|
@ -324,12 +300,16 @@ app.post("/sendfunds", async function (req, res) {
|
||||||
|
|
||||||
app.post("/register", async function (req, res) {
|
app.post("/register", async function (req, res) {
|
||||||
var { name, password, password2 } = req.body;
|
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.errors = [];
|
||||||
req.session.successes = [];
|
req.session.successes = [];
|
||||||
if (checkuser == false) {
|
if (!checkuser) {
|
||||||
if (!name || !password || !password2) {
|
if (!name || !password || !password2) {
|
||||||
req.session.errors.push({ msg: "please fill in all fields" });
|
req.session.errors.push({ msg: "please fill in all fields" });
|
||||||
}
|
}
|
||||||
|
|
@ -360,51 +340,33 @@ app.post("/login", async function (req, res) {
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
}
|
}
|
||||||
req.session.regenerate(function (err) {});
|
req.session.regenerate(function (err) {});
|
||||||
let { name, password } = req.body;
|
const { name, password } = req.body;
|
||||||
let adminTest;
|
let adminTest;
|
||||||
req.session.errors = [];
|
|
||||||
let verified;
|
|
||||||
try {
|
try {
|
||||||
verified = await got(
|
adminTest = await client.adminVerifyPass(password);
|
||||||
process.env.BANKAPIURL + "BankF/" + name + "/pass/verify",
|
|
||||||
{
|
|
||||||
headers: {
|
|
||||||
Password: password,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
} finally {
|
}
|
||||||
if (verified.body.value == -2) {
|
if (adminTest) {
|
||||||
req.session.errors.push({ msg: "Password wrong" });
|
req.session.admin = adminTest;
|
||||||
res.redirect("/login");
|
req.session.adminp = password;
|
||||||
} else if (verified.body.value == 1) {
|
|
||||||
console.log(name);
|
|
||||||
req.session.user = name;
|
req.session.user = name;
|
||||||
req.session.password = password;
|
req.session.password = password;
|
||||||
res.redirect("/BankF");
|
res.redirect("/BankF");
|
||||||
} else if (verified.body.value == -1) {
|
} else {
|
||||||
req.session.errors = [];
|
let verified;
|
||||||
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 {
|
try {
|
||||||
adminTest = await got(process.env.BANKAPIURL + "BankF/admin/verify", {
|
verified = await client.verifyPassword(name, password);
|
||||||
headers: {
|
|
||||||
Password: password,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
} finally {
|
||||||
console.log(adminTest.body);
|
if (!verified) {
|
||||||
if (adminTest.body) {
|
req.session.errors = [];
|
||||||
req.session.admin = adminTest.body.value;
|
req.session.errors.push({ msg: "Password wrong" });
|
||||||
req.session.adminp = password;
|
res.redirect("/login");
|
||||||
|
} else {
|
||||||
|
req.session.user = name;
|
||||||
|
req.session.password = password;
|
||||||
res.redirect("/BankF");
|
res.redirect("/BankF");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
81
package-lock.json
generated
81
package-lock.json
generated
|
|
@ -8,6 +8,7 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"ccash-client-js": "^1.6.0",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
|
@ -167,6 +168,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
||||||
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
|
"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": {
|
"node_modules/babel-walk": {
|
||||||
"version": "3.0.0-canary-5",
|
"version": "3.0.0-canary-5",
|
||||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
"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"
|
"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": {
|
"node_modules/character-parser": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||||
|
|
@ -273,6 +291,11 @@
|
||||||
"is-regex": "^1.0.3"
|
"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": {
|
"node_modules/clone-response": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
||||||
|
|
@ -560,6 +583,25 @@
|
||||||
"node": ">= 0.8"
|
"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": {
|
"node_modules/forwarded": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||||
|
|
@ -1053,9 +1095,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/normalize-url": {
|
"node_modules/normalize-url": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==",
|
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
|
|
@ -1755,6 +1797,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
||||||
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
|
"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": {
|
"babel-walk": {
|
||||||
"version": "3.0.0-canary-5",
|
"version": "3.0.0-canary-5",
|
||||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
||||||
|
|
@ -1832,6 +1882,15 @@
|
||||||
"get-intrinsic": "^1.0.2"
|
"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": {
|
"character-parser": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
||||||
|
|
@ -1840,6 +1899,11 @@
|
||||||
"is-regex": "^1.0.3"
|
"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": {
|
"clone-response": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
|
||||||
|
|
@ -2070,6 +2134,11 @@
|
||||||
"unpipe": "~1.0.0"
|
"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": {
|
"forwarded": {
|
||||||
"version": "0.1.2",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||||
|
|
@ -2426,9 +2495,9 @@
|
||||||
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
||||||
},
|
},
|
||||||
"normalize-url": {
|
"normalize-url": {
|
||||||
"version": "4.5.0",
|
"version": "4.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
|
||||||
"integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="
|
"integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
|
||||||
},
|
},
|
||||||
"object-assign": {
|
"object-assign": {
|
||||||
"version": "4.1.1",
|
"version": "4.1.1",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"ccash-client-js": "^1.6.0",
|
||||||
"connect-flash": "^0.1.1",
|
"connect-flash": "^0.1.1",
|
||||||
"dotenv": "^8.2.0",
|
"dotenv": "^8.2.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
|
|
|
||||||
152
routes/admin.js
152
routes/admin.js
|
|
@ -12,6 +12,9 @@ const got = require("got");
|
||||||
const MemoryStore = require("memorystore")(session);
|
const MemoryStore = require("memorystore")(session);
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const mongoose = require("mongoose");
|
const mongoose = require("mongoose");
|
||||||
|
const { CCashClient } = require("ccash-client-js");
|
||||||
|
|
||||||
|
const client = new CCashClient(process.env.BANKAPIURL);
|
||||||
console.log("Sen was here");
|
console.log("Sen was here");
|
||||||
|
|
||||||
function mongo() {
|
function mongo() {
|
||||||
|
|
@ -36,9 +39,14 @@ function mongo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
router.get("/", checkAdmin, function (req, res) {
|
router.get("/", checkAdmin, function (req, res) {
|
||||||
|
let successes = req.session.successes;
|
||||||
|
let errors = req.session.errors;
|
||||||
|
|
||||||
res.render("adminsettings", {
|
res.render("adminsettings", {
|
||||||
user: req.session.user,
|
user: req.session.user,
|
||||||
admin: req.session.admin,
|
admin: req.session.admin,
|
||||||
|
errors: errors,
|
||||||
|
successes: successes,
|
||||||
marketplace: process.env.MARKETPLACE,
|
marketplace: process.env.MARKETPLACE,
|
||||||
random: papy(),
|
random: papy(),
|
||||||
});
|
});
|
||||||
|
|
@ -46,10 +54,9 @@ router.get("/", checkAdmin, function (req, res) {
|
||||||
|
|
||||||
router.post("/user", checkAdmin, async function (req, res) {
|
router.post("/user", checkAdmin, async function (req, res) {
|
||||||
let { name, init_pass, init_bal, password2 } = req.body;
|
let { name, init_pass, init_bal, password2 } = req.body;
|
||||||
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
|
let contains = await client.contains(name);
|
||||||
contains = JSON.parse(contains.body).value;
|
req.session.errors = [];
|
||||||
let errors = [];
|
req.session.successes = [];
|
||||||
let successes = [];
|
|
||||||
if (contains == true) {
|
if (contains == true) {
|
||||||
errors.push({ msg: "User already exists" });
|
errors.push({ msg: "User already exists" });
|
||||||
res.render("adminsettings", {
|
res.render("adminsettings", {
|
||||||
|
|
@ -57,165 +64,111 @@ router.post("/user", checkAdmin, async function (req, res) {
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (!name || !init_pass || !init_bal || !password2) {
|
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
|
//check if match
|
||||||
if (init_pass !== password2) {
|
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
|
//check if password is more than 6 characters
|
||||||
if (init_pass.length < 6) {
|
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 post;
|
||||||
let successes = [];
|
let successes = [];
|
||||||
try {
|
try {
|
||||||
post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", {
|
post = await client.adminAddUser(
|
||||||
json: {
|
name,
|
||||||
name: name,
|
req.session.adminp,
|
||||||
attempt: req.session.adminp,
|
init_pass,
|
||||||
init_bal: parseInt(init_bal),
|
parseInt(init_bal)
|
||||||
init_pass: init_pass,
|
);
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
if (post.body.value == true) {
|
if (post) {
|
||||||
successes.push({ msg: "Account Creation Successful" });
|
successes.push({ msg: "Account Creation Successful" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res.render("adminsettings", {
|
res.redirect("/admin");
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
successes: successes,
|
|
||||||
marketplace: process.env.MARKETPLACE,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/baluser", checkAdmin, async function (req, res) {
|
router.post("/baluser", checkAdmin, async function (req, res) {
|
||||||
let { name } = req.body;
|
let { name } = req.body;
|
||||||
let balance;
|
let balance;
|
||||||
let successes = [];
|
req.session.successes = [];
|
||||||
let errors = [];
|
req.session.errors = [];
|
||||||
try {
|
try {
|
||||||
balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal");
|
balance = await client.balance(name);
|
||||||
balance = JSON.parse(balance.body);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
if (balance.value == -1 || balance.value == undefined) {
|
balance = parseInt(balance);
|
||||||
errors.push({ msg: "User not found" });
|
console.log(balance);
|
||||||
|
if (balance < 0) {
|
||||||
|
req.session.errors.push({ msg: "User not found" });
|
||||||
} else {
|
} else {
|
||||||
successes.push({
|
req.session.successes.push({
|
||||||
msg: "User: " + name + " has " + balance.value + " monies",
|
msg: "User: " + name + " has " + balance.value + " monies",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
res.render("adminsettings", {
|
res.redirect("/admin");
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
successes: successes,
|
|
||||||
errors: errors,
|
|
||||||
marketplace: process.env.MARKETPLACE,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post("/bal", checkAdmin, async function (req, res) {
|
router.post("/bal", checkAdmin, async function (req, res) {
|
||||||
let { name, amount } = req.body;
|
let { name, amount } = req.body;
|
||||||
let patch;
|
let patch;
|
||||||
let successes = [];
|
req.session.successes = [];
|
||||||
|
req.session.errors = [];
|
||||||
try {
|
try {
|
||||||
patch = await got.patch(
|
patch = await client.setBalance(name, req.session.adminp, parseInt(amount));
|
||||||
process.env.BANKAPIURL + "BankF/admin/" + name + "/bal",
|
|
||||||
{
|
|
||||||
json: {
|
|
||||||
name: name,
|
|
||||||
attempt: req.session.adminp,
|
|
||||||
amount: parseInt(amount),
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
if ((await patch.body.value) == true) {
|
if (patch) {
|
||||||
successes.push({ msg: "Change Funds Successful" });
|
req.session.successes.push({ msg: "Change Funds Successful" });
|
||||||
}
|
}
|
||||||
res.render("adminsettings", {
|
res.redirect("/admin");
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
successes: successes,
|
|
||||||
marketplace: process.env.MARKETPLACE,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
router.post("/userdelete", checkAdmin, async function (req, res) {
|
router.post("/userdelete", checkAdmin, async function (req, res) {
|
||||||
let { name, attempt } = req.body;
|
let { name, attempt } = req.body;
|
||||||
console.log(name);
|
console.log(name);
|
||||||
let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
|
let contains = await client.contains(name);
|
||||||
contains = JSON.parse(contains.body).value;
|
|
||||||
let deleteUser;
|
let deleteUser;
|
||||||
let successes = [];
|
let successes = [];
|
||||||
let errors = [];
|
let errors = [];
|
||||||
if (attempt != req.session.adminp) {
|
if (attempt != req.session.adminp) {
|
||||||
errors.push({ msg: "Wrong Admin Password" });
|
req.session.errors.push({ msg: "Wrong Admin Password" });
|
||||||
}
|
}
|
||||||
console.log(contains);
|
console.log(contains);
|
||||||
if (contains == true) {
|
if (contains == true) {
|
||||||
deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", {
|
deleteUser = client.adminDeleteUser(name, attempt);
|
||||||
json: {
|
req.session.successes.push({ msg: "User Deletion Successful" });
|
||||||
name: name,
|
|
||||||
attempt: attempt,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
successes.push({ msg: "User Deletion Successful" });
|
|
||||||
} else {
|
} else {
|
||||||
errors.push({ msg: "User Deletion Failed, User Not Found" });
|
req.session.errors.push({ msg: "User Deletion Failed, User Not Found" });
|
||||||
}
|
}
|
||||||
res.render("adminsettings", {
|
res.redirect("/admin");
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
successes: successes,
|
|
||||||
errors: errors,
|
|
||||||
marketplace: process.env.MARKETPLACE,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
router.post("/destroyallsessions", checkAdmin, async function (req, res) {
|
router.post("/destroyallsessions", checkAdmin, async function (req, res) {
|
||||||
let { attempt } = req.body;
|
let { attempt } = req.body;
|
||||||
let adminTest;
|
let adminTest;
|
||||||
let errors = [];
|
req.session.errors = [];
|
||||||
try {
|
try {
|
||||||
adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", {
|
adminTest = await client.adminVerifyPass(attempt);
|
||||||
json: {
|
|
||||||
attempt: attempt,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
console.log(adminTest.body.value);
|
|
||||||
if (adminTest) {
|
if (adminTest) {
|
||||||
req.sessionStore.clear(function (err) {
|
req.sessionStore.clear(function (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
});
|
});
|
||||||
res.redirect("/");
|
res.redirect("/");
|
||||||
} else {
|
} else {
|
||||||
errors.push({ msg: "failed admin password check" });
|
req.session.errors.push({ msg: "failed admin password check" });
|
||||||
res.render("adminsettings", {
|
res.redirect("/admin");
|
||||||
user: req.session.user,
|
|
||||||
admin: req.session.admin,
|
|
||||||
errors: errors,
|
|
||||||
marketplace: process.env.MARKETPLACE,
|
|
||||||
random: papy(),
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -279,12 +232,7 @@ router.post("/mongodb", checkAdmin, async function (req, res) {
|
||||||
router.post("/close", checkAdmin, async function (req, res) {
|
router.post("/close", checkAdmin, async function (req, res) {
|
||||||
let { attempt } = req.body;
|
let { attempt } = req.body;
|
||||||
let close;
|
let close;
|
||||||
close = got.post(process.env.BANKAPIURL + "BankF/admin/close", {
|
close = client.close();
|
||||||
json: {
|
|
||||||
attempt: attempt,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
res.redirect("../");
|
res.redirect("../");
|
||||||
});
|
});
|
||||||
function papy() {
|
function papy() {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ const flash = require("connect-flash");
|
||||||
const expressValidator = require("express-validator");
|
const expressValidator = require("express-validator");
|
||||||
const session = require("express-session");
|
const session = require("express-session");
|
||||||
const { postUser } = require("../helpers/functions.js");
|
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) {
|
router.get("/", ensureAuthenticated, function (req, res) {
|
||||||
let successes = req.session.successes;
|
let successes = req.session.successes;
|
||||||
|
|
@ -27,7 +29,10 @@ router.get("/", ensureAuthenticated, function (req, res) {
|
||||||
router.post("/pass", ensureAuthenticated, async function (req, res) {
|
router.post("/pass", ensureAuthenticated, async function (req, res) {
|
||||||
let { attempt, new_pass, password2 } = req.body;
|
let { attempt, new_pass, password2 } = req.body;
|
||||||
let patch;
|
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" });
|
req.session.errors.push({ msg: "please fill in all fields" });
|
||||||
}
|
}
|
||||||
//check if match
|
//check if match
|
||||||
|
|
@ -44,31 +49,22 @@ router.post("/pass", ensureAuthenticated, async function (req, res) {
|
||||||
res.redirect("/settings");
|
res.redirect("/settings");
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
patch = await got.patch(process.env.BANKAPIURL + "BankF/changepass", {
|
patch = await client.changePassword(req.session.user, attempt, new_pass);
|
||||||
json: {
|
|
||||||
name: req.session.user,
|
|
||||||
attempt: attempt,
|
|
||||||
new_pass: new_pass,
|
|
||||||
},
|
|
||||||
responseType: "json",
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
console.log(patch.body);
|
console.log(patch);
|
||||||
if (patch.body.value == 0) {
|
if (patch) {
|
||||||
req.session.errors.push({
|
req.session.errors.push({
|
||||||
msg: "Password Wrong",
|
msg: "Password Wrong",
|
||||||
});
|
});
|
||||||
res.redirect("/settings");
|
res.redirect("/settings");
|
||||||
} else {
|
} else {
|
||||||
req.session.regenerate(function (err) {
|
req.session.regenerate(function (err) {
|
||||||
if (patch.body.value == 1) {
|
|
||||||
req.session.successes = [];
|
req.session.successes = [];
|
||||||
req.session.successes.push({
|
req.session.successes.push({
|
||||||
msg: "Change Password Successful, Please Login Again",
|
msg: "Change Password Successful, Please Login Again",
|
||||||
});
|
});
|
||||||
}
|
|
||||||
res.redirect("/login");
|
res.redirect("/login");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue