refractor patch

This commit is contained in:
Expand-sys 2021-07-06 11:54:38 +10:00
parent 2d74873189
commit ba07a8b70d
5 changed files with 259 additions and 273 deletions

View file

@ -86,12 +86,16 @@ fastify.post("/setup", async function (req, res) {
}); });
fastify.get("/", async function (req, res) { fastify.get("/", async function (req, res) {
let successes = req.session.get("successes");
req.session.set("successes", "");
let errors = req.session.get("errors");
req.session.set("errors", "");
if (process.env.SETUP == false || !process.env.SETUP) { if (process.env.SETUP == false || !process.env.SETUP) {
res.view("setup"); res.view("setup");
} else { } else {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },
@ -107,6 +111,8 @@ fastify.get("/", async function (req, res) {
admin: req.session.get("admin"), admin: req.session.get("admin"),
alive: alive, alive: alive,
url: process.env.BANKAPIURL, url: process.env.BANKAPIURL,
errors: errors,
successes: successes,
}); });
} }
}); });
@ -137,7 +143,7 @@ fastify.get(
Authorization: auth, Authorization: auth,
Accept: "application/json", Accept: "application/json",
}, },
query: { searchParams: {
name: user, name: user,
}, },
}); });
@ -238,6 +244,7 @@ fastify.post(
req.session.set("successes", ""); req.session.set("successes", "");
let result; let result;
//result = await client.sendFunds(a_name, senderpass, name, amount); //result = await client.sendFunds(a_name, senderpass, name, amount);
try {
result = await got.post(`${api}/user/transfer`, { result = await got.post(`${api}/user/transfer`, {
headers: { headers: {
Authorization: auth, Authorization: auth,
@ -248,18 +255,15 @@ fastify.post(
amount: amount, amount: amount,
}, },
}); });
console.log(result); } catch (e) {
if (result == 1) { req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
if (result) {
req.session.set("successes", "Transfer successful"); req.session.set("successes", "Transfer successful");
//post details //post details
res.redirect("/BankF");
} else if (result == -1) {
req.session.set("errors", "Transfer Unsuccessful: User not Found");
res.redirect("/BankF");
} else if (result == -2) {
req.session.set("errors", "Transfer Unsuccessful: Wrong Password");
res.redirect("/BankF");
} }
res.redirect("/BankF");
} }
); );
@ -279,6 +283,7 @@ fastify.post("/register", async function (req, res) {
res.redirect("/register"); res.redirect("/register");
} else { } else {
//let checkuser = await client.addUser(name, password); //let checkuser = await client.addUser(name, password);
try {
let checkuser = await got.post(`${api}/user/register`, { let checkuser = await got.post(`${api}/user/register`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
@ -288,17 +293,16 @@ fastify.post("/register", async function (req, res) {
pass: `${password}`, pass: `${password}`,
}, },
}); });
console.log(await checkuser); } catch (e) {
if (checkuser == -4) { req.session.set("errors", `${e.response.body}`);
req.session.set("errors", "Error: Name too long"); console.log(e.response.body);
res.redirect("/register");
} else if (checkuser == -5) {
req.session.set("errors", "Error: User Already Exists");
res.redirect("/register");
} else {
req.session.set("successes", "Account Created! please Log in");
res.redirect("/login");
} }
console.log(await checkuser);
if (checkuser) {
req.session.set("successes", "Account Created! please Log in");
}
res.redirect("/login");
} }
}); });
@ -309,7 +313,7 @@ fastify.post("/login", async function (req, res) {
res.redirect("/"); res.redirect("/");
} }
const { name, password } = req.body; const { name, password } = req.body;
let adminTest;
/*try { /*try {
adminTest = await client.adminVerifyPassword(password); adminTest = await client.adminVerifyPassword(password);
} catch (err) { } catch (err) {
@ -318,6 +322,7 @@ fastify.post("/login", async function (req, res) {
let auth = btoa(`${name}:${password}`); let auth = btoa(`${name}:${password}`);
auth = `Basic ${auth}`; auth = `Basic ${auth}`;
console.log(auth); console.log(auth);
let adminTest;
try { try {
adminTest = await got.post(`${api}/admin/verify_account`, { adminTest = await got.post(`${api}/admin/verify_account`, {
headers: { headers: {
@ -325,37 +330,37 @@ fastify.post("/login", async function (req, res) {
Accept: "application/json", Accept: "application/json",
}, },
}); });
} catch (e) {
console.log(e);
}
adminTest = JSON.parse(adminTest.body); adminTest = JSON.parse(adminTest.body);
} catch (e) {
console.log(e.response.body);
}
console.log(adminTest); console.log(adminTest);
if (adminTest != -2) { if (adminTest) {
req.session.set("b64", auth); req.session.set("b64", auth);
req.session.set("admin", adminTest); req.session.set("admin", adminTest);
req.session.set("user", name); req.session.set("user", name);
req.session.set("password", password); req.session.set("password", password);
res.redirect("/BankF");
} else { } else {
let verified; let verified;
//verified = await client.verifyPassword(name, password); //verified = await client.verifyPassword(name, password);
try {
verified = await got.post(`${api}/user/verify_password`, { verified = await got.post(`${api}/user/verify_password`, {
headers: { headers: {
Authorization: auth, Authorization: auth,
Accept: "application/json", Accept: "application/json",
}, },
}); });
console.log(verified); } catch (e) {
if (verified == 1) { req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
if (verified) {
req.session.set("b64", auth); req.session.set("b64", auth);
req.session.set("user", name); req.session.set("user", name);
req.session.set("password", password); req.session.set("password", password);
}
}
res.redirect("/BankF"); res.redirect("/BankF");
} else {
req.session.set("errors", ["Password wrong"]);
res.redirect("/login");
}
}
}); });
fastify.register(require("./routes/admin"), { prefix: "/admin" }); fastify.register(require("./routes/admin"), { prefix: "/admin" });
@ -365,7 +370,7 @@ fastify.register(require("./routes/settings"), { prefix: "/settings" });
fastify.get("/logout", async function (req, res) { fastify.get("/logout", async function (req, res) {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },
@ -393,7 +398,7 @@ fastify.get("/login", async function (req, res) {
let errors = req.session.get("errors"); let errors = req.session.get("errors");
req.session.set("errors", ""); req.session.set("errors", "");
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },
@ -419,7 +424,7 @@ fastify.get("/register", async function (req, res) {
let errors = req.session.get("errors"); let errors = req.session.get("errors");
req.session.set("errors", ""); req.session.set("errors", "");
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },

View file

@ -18,7 +18,7 @@ module.exports = function (fastify, opts, done) {
async function (req, res) { async function (req, res) {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },
@ -55,8 +55,6 @@ module.exports = function (fastify, opts, done) {
req.session.set("errors", "please fill in all fields"); req.session.set("errors", "please fill in all fields");
} else if (init_pass !== password2) { } else if (init_pass !== password2) {
req.session.set("errors", "Passwords don't match"); req.session.set("errors", "Passwords don't match");
} else if (init_pass.length < 6) {
req.session.set("errors", "Password must be at least 6 characters");
} }
/*let post = await client.adminAddUser( /*let post = await client.adminAddUser(
name, name,
@ -64,8 +62,9 @@ module.exports = function (fastify, opts, done) {
init_pass, init_pass,
parseInt(init_bal) parseInt(init_bal)
);*/ );*/
let post;
let post = await got.post(`${api}/admin/user/register`, { try {
post = await got.post(`${api}/admin/user/register`, {
headers: { headers: {
Authorization: req.session.get("b64"), Authorization: req.session.get("b64"),
Accept: "application/json", Accept: "application/json",
@ -76,15 +75,13 @@ module.exports = function (fastify, opts, done) {
pass: init_pass, pass: init_pass,
}, },
}); });
console.log(post.body); post = post.body;
if (post == -3) { } catch (e) {
req.session.set("errors", "Invalid Request"); req.session.set("errors", `${e.response.body}`);
} else if (post == -4) { console.log(e.response.body);
req.session.set("errors", "Name too long"); }
} else if (post == -5) { if (post) {
req.session.set("errors", "User already exists"); req.session.set("successes", `User ${name} registered.`);
} else {
req.session.set("successes", "Account Creation Successful");
} }
res.redirect("/admin"); res.redirect("/admin");
} }
@ -102,23 +99,28 @@ module.exports = function (fastify, opts, done) {
req.session.set("successes", ""); req.session.set("successes", "");
req.session.set("errors", ""); req.session.set("errors", "");
//balance = await client.balance(name); //balance = await client.balance(name);
let responsecode;
try {
balance = await got(`${api}/user/balance`, { balance = await got(`${api}/user/balance`, {
headers: { headers: {
Authorization: req.session.get("b64"), Authorization: req.session.get("b64"),
Accept: "application/json", Accept: "application/json",
}, },
query: { searchParams: {
name: name, name: name,
}, },
}); });
balance = parseInt(balance.body); balance = parseInt(balance.body);
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
console.log(balance); console.log(balance);
if (balance < 0) { if (balance) {
req.session.set("errors", "User not found");
} else {
req.session.set( req.session.set(
"successes", "successes",
"User: " + name + " has " + balance + " monies" "User: " + name + " has " + balance + " truckstop shitter simoleons"
); );
} }
res.redirect("/admin"); res.redirect("/admin");
@ -130,76 +132,6 @@ module.exports = function (fastify, opts, done) {
{ {
preValidation: [validateAdmin], preValidation: [validateAdmin],
}, },
async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { name, amount } = req.body;
let patch;
req.session.successes = [];
req.session.errors = [];
/*patch = await client.setBalance(
name,
req.session.get("adminp"),
parseInt(amount)
);*/
patch = await got.patch(`${api}/admin/set_balance`, {
headers: {
Authorization: req.session.get("b64"),
Accept: "application/json",
},
json: {
name: name,
amount: parseInt(amount),
},
});
console.log(patch);
if (patch == -1) {
req.session.set("errors", "User not Found");
} else if (patch == 1) {
req.session.set("successes", "Change Funds Successful");
}
res.redirect("/admin");
}
);
fastify.post(
"/subbal",
{
preValidation: [validateAdmin],
},
async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL);
let { name, amount } = req.body;
let patch;
req.session.successes = [];
req.session.errors = [];
/*patch = await client.setBalance(
name,
req.session.get("adminp"),
parseInt(amount)
);*/
patch = await got.post(`${api}/admin/sub_balance`, {
headers: {
Authorization: req.session.get("b64"),
Accept: "application/json",
},
json: {
name: name,
amount: parseInt(amount),
},
});
console.log(patch);
if (patch == -1) {
req.session.set("errors", "User not Found");
} else if (patch == 1) {
req.session.set("successes", "Change Funds Successful");
}
res.redirect("/admin");
}
);
fastify.post(
"/addbal",
{
preValidation: [validateAdmin],
},
async function (req, res) { async function (req, res) {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
let { name, amount } = req.body; let { name, amount } = req.body;
@ -211,7 +143,8 @@ module.exports = function (fastify, opts, done) {
req.session.get("adminp"), req.session.get("adminp"),
parseInt(amount) parseInt(amount)
);*/ );*/
patch = await got.post(`${api}/admin/add_balance`, { try {
patch = await got.patch(`${api}/admin/set_balance`, {
headers: { headers: {
Authorization: req.session.get("b64"), Authorization: req.session.get("b64"),
Accept: "application/json", Accept: "application/json",
@ -221,10 +154,52 @@ module.exports = function (fastify, opts, done) {
amount: parseInt(amount), amount: parseInt(amount),
}, },
}); });
patch = patch.body;
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
console.log(patch); console.log(patch);
if (patch == -1) { if (patch) {
req.session.set("errors", "User not Found"); req.session.set("successes", "Change Funds Successful");
} else if (patch == 1) { }
res.redirect("/admin");
}
);
fastify.post(
"/impbal",
{
preValidation: [validateAdmin],
},
async function (req, res) {
//const client = new CCashClient(process.env.BANKAPIURL);
let { name, amount } = req.body;
let patch;
req.session.successes = [];
req.session.errors = [];
/*patch = await client.setBalance(
name,
req.session.get("adminp"),
parseInt(amount)
);*/
try {
patch = await got.post(`${api}/admin/impact_balance`, {
headers: {
Authorization: req.session.get("b64"),
Accept: "application/json",
},
json: {
name: name,
amount: parseInt(amount),
},
});
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
if (patch) {
req.session.set("successes", "Change Funds Successful"); req.session.set("successes", "Change Funds Successful");
} }
res.redirect("/admin"); res.redirect("/admin");
@ -240,21 +215,13 @@ module.exports = function (fastify, opts, done) {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
let { name, new_pass, password2 } = req.body; let { name, new_pass, password2 } = req.body;
let patch; let patch;
if (!new_pass || !password2) {
req.session.set("errors", "please fill in all fields");
res.redirect("/settings");
} else if (new_pass != password2) {
req.session.set("errors", "Passwords don't match");
res.redirect("/settings");
} else if (new_pass.length < 6) {
req.session.set("errors", "Password must be at least 6 characters");
res.redirect("/settings");
} else {
/*patch = await client.changePassword( /*patch = await client.changePassword(
req.session.get("user"), req.session.get("user"),
attempt, attempt,
new_pass new_pass
);*/ );*/
if (new_pass == password2) {
try {
patch = await got.patch(`${api}/user/change_password`, { patch = await got.patch(`${api}/user/change_password`, {
headers: { headers: {
Authorization: req.session.get("b64"), Authorization: req.session.get("b64"),
@ -265,18 +232,18 @@ module.exports = function (fastify, opts, done) {
new_pass: new_pass, new_pass: new_pass,
}, },
}); });
console.log(patch); } catch (e) {
if (patch == -2) { req.session.set("errors", `${e.response.body}`);
req.session.set("errors", "Password Wrong"); console.log(e.response.body);
res.redirect("/"); }
if (patch) {
req.session.set("successes", "Change Password Successful");
}
} else { } else {
req.session.set( req.session.set("errors", `Passwords dont match`);
"successes",
"Change Password Successful, Please Login Again"
);
res.redirect("/");
}
} }
res.redirect("/admin");
} }
); );
@ -290,6 +257,7 @@ module.exports = function (fastify, opts, done) {
let { name, attempt } = req.body; let { name, attempt } = req.body;
//let deleteUser = client.adminDeleteUser(name, attempt); //let deleteUser = client.adminDeleteUser(name, attempt);
try {
let deleteUser = await got.delete(`${api}/admin/delete`, { let deleteUser = await got.delete(`${api}/admin/delete`, {
headers: { headers: {
Authorization: req.session.get("b64"), Authorization: req.session.get("b64"),
@ -299,16 +267,16 @@ module.exports = function (fastify, opts, done) {
name: name, name: name,
}, },
}); });
deleteUser = deleteUser.body;
if (deleteUser == -1) { } catch (e) {
req.session.errors.push({ req.session.set("errors", `${e.response.body}`);
msg: "User Deletion Failed, User Not Found", console.log(e.response.body);
});
res.redirect("/admin");
} else {
req.session.set("successes", "User Deletion Successful");
res.redirect("/admin");
} }
if (deleteUser) {
req.session.set("successes", "User Deletion Successful");
}
res.redirect("/admin");
} }
); );
@ -350,10 +318,27 @@ module.exports = function (fastify, opts, done) {
preValidation: [validateAdmin], preValidation: [validateAdmin],
}, },
async function (req, res) { async function (req, res) {
const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
let { attempt } = req.body; let { attempt } = req.body;
let name = req.session.get("user");
let close; let close;
close = client.close(); //close = client.close();
let auth = btoa(`${name}:${attempt}`);
auth = `Basic ${auth}`;
try {
close = got.post(`${api}/admin/shutdown`, {
headers: {
Authorization: auth,
Accept: "application/json",
},
});
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
if (close) {
req.session.set("successes", "Closed instance");
}
res.redirect("../"); res.redirect("../");
} }
); );

View file

@ -3,7 +3,7 @@ const path = require("path");
var pug = require("pug"); var pug = require("pug");
const { postUser } = require(`${root}/helpers/functions.js`); const { postUser } = require(`${root}/helpers/functions.js`);
const { CCashClient } = require("ccash-client-js"); const { CCashClient } = require("ccash-client-js");
const got = require("got");
function validate(req, res, next) { function validate(req, res, next) {
if (!req.session.get("user")) { if (!req.session.get("user")) {
res.redirect("/login"); res.redirect("/login");
@ -11,6 +11,7 @@ function validate(req, res, next) {
next(); next();
} }
} }
const api = process.env.BANKAPIURL;
module.exports = function (fastify, opts, done) { module.exports = function (fastify, opts, done) {
fastify.get( fastify.get(
@ -21,7 +22,7 @@ module.exports = function (fastify, opts, done) {
async function (req, res) { async function (req, res) {
//const client = new CCashClient(process.env.BANKAPIURL); //const client = new CCashClient(process.env.BANKAPIURL);
//let checkalive = await client.ping(); //let checkalive = await client.ping();
let checkalive = await got(`${api}/ping`, { let checkalive = await got(`${api}/help`, {
headers: { headers: {
Accept: "application/json", Accept: "application/json",
}, },
@ -71,6 +72,7 @@ module.exports = function (fastify, opts, done) {
attempt, attempt,
new_pass new_pass
);*/ );*/
try {
patch = await got.patch(`${api}/user/change_password`, { patch = await got.patch(`${api}/user/change_password`, {
headers: { headers: {
Authorization: auth, Authorization: auth,
@ -80,6 +82,11 @@ module.exports = function (fastify, opts, done) {
new_pass: new_pass, new_pass: new_pass,
}, },
}); });
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
console.log(patch); console.log(patch);
if (patch == -2) { if (patch == -2) {
req.session.set("errors", "Password Wrong"); req.session.set("errors", "Password Wrong");
@ -115,25 +122,31 @@ module.exports = function (fastify, opts, done) {
req.session.set("errors", "Passwords don't match"); req.session.set("errors", "Passwords don't match");
res.redirect("/settings"); res.redirect("/settings");
} else { } else {
let name = req.session.get("user");
let auth = btoa(`${name}:${password}`);
auth = `Basic ${auth}`;
//del = await client.deleteUser(req.session.user, password); //del = await client.deleteUser(req.session.user, password);
del = await got.delete(`${api}/delete`, { try {
del = await got.delete(`${api}/user/delete`, {
headers: { headers: {
Authorization: auth, Authorization: auth,
Accept: "application/json", Accept: "application/json",
}, },
}); });
} catch (e) {
req.session.set("errors", `${e.response.body}`);
console.log(e.response.body);
}
console.log(del); console.log(del);
if (del == -2) { if (del) {
req.session.set("errors", "Password Wrong");
res.redirect("/settings");
} else {
req.session.delete(); req.session.delete();
req.session.set( req.session.set(
"successes", "successes",
"Account Deleted, pls dont come back to complain" "Account Deleted, pls dont come back to complain"
); );
res.redirect("/login");
} }
res.redirect("/");
} }
} }
); );

View file

@ -61,23 +61,12 @@ block content
input.btn.btn-primary(type='submit',value='Submit') input.btn.btn-primary(type='submit',value='Submit')
br br
.card.shadow-lg .card.shadow-lg
h4 Add Balance to User h4 Impact Balance of User +/-
form(method='POST', action='/admin/addbal') form(method='POST', action='/admin/impbal')
#form-group #form-group
label Username: label Username:
input.form-control(name='name', type='name') input.form-control(name='name', type='name')
label Add amount: label Amount:
input.form-control(name='amount', type='number')
br
input.btn.btn-primary(type='submit',value='Submit')
br
.card.shadow-lg
h4 Subtract Balance from User
form(method='POST', action='/admin/subbal')
#form-group
label Username:
input.form-control(name='name', type='name')
label Subtract amount:
input.form-control(name='amount', type='number') input.form-control(name='amount', type='number')
br br
input.btn.btn-primary(type='submit',value='Submit') input.btn.btn-primary(type='submit',value='Submit')

View file

@ -1,6 +0,0 @@
{
"name": "ccashfrontend",
"script": "/app/ccashfrontend/index.js",
"watch": "/app/ccashfrontend/tmp/restart.txt",
"instances": "1"
}