diff --git a/index.js b/index.js index d25bcf6..754b2d6 100644 --- a/index.js +++ b/index.js @@ -86,12 +86,16 @@ fastify.post("/setup", 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) { res.view("setup"); } else { //const client = new CCashClient(process.env.BANKAPIURL); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, @@ -107,6 +111,8 @@ fastify.get("/", async function (req, res) { admin: req.session.get("admin"), alive: alive, url: process.env.BANKAPIURL, + errors: errors, + successes: successes, }); } }); @@ -137,7 +143,7 @@ fastify.get( Authorization: auth, Accept: "application/json", }, - query: { + searchParams: { name: user, }, }); @@ -238,28 +244,26 @@ fastify.post( req.session.set("successes", ""); let result; //result = await client.sendFunds(a_name, senderpass, name, amount); - result = await got.post(`${api}/user/transfer`, { - headers: { - Authorization: auth, - Accept: "application/json", - }, - json: { - to: name, - amount: amount, - }, - }); - console.log(result); - if (result == 1) { + try { + result = await got.post(`${api}/user/transfer`, { + headers: { + Authorization: auth, + Accept: "application/json", + }, + json: { + to: name, + amount: amount, + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + if (result) { req.session.set("successes", "Transfer successful"); //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,26 +283,26 @@ fastify.post("/register", async function (req, res) { res.redirect("/register"); } else { //let checkuser = await client.addUser(name, password); - let checkuser = await got.post(`${api}/user/register`, { - headers: { - Accept: "application/json", - }, - json: { - name: `${name}`, - pass: `${password}`, - }, - }); - console.log(await checkuser); - if (checkuser == -4) { - req.session.set("errors", "Error: Name too long"); - 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"); + try { + let checkuser = await got.post(`${api}/user/register`, { + headers: { + Accept: "application/json", + }, + json: { + name: `${name}`, + pass: `${password}`, + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); } + + 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("/"); } const { name, password } = req.body; - let adminTest; + /*try { adminTest = await client.adminVerifyPassword(password); } catch (err) { @@ -318,6 +322,7 @@ fastify.post("/login", async function (req, res) { let auth = btoa(`${name}:${password}`); auth = `Basic ${auth}`; console.log(auth); + let adminTest; try { adminTest = await got.post(`${api}/admin/verify_account`, { headers: { @@ -325,37 +330,37 @@ fastify.post("/login", async function (req, res) { Accept: "application/json", }, }); + adminTest = JSON.parse(adminTest.body); } catch (e) { - console.log(e); + console.log(e.response.body); } - adminTest = JSON.parse(adminTest.body); console.log(adminTest); - if (adminTest != -2) { + if (adminTest) { req.session.set("b64", auth); req.session.set("admin", adminTest); req.session.set("user", name); req.session.set("password", password); - res.redirect("/BankF"); } else { let verified; //verified = await client.verifyPassword(name, password); - verified = await got.post(`${api}/user/verify_password`, { - headers: { - Authorization: auth, - Accept: "application/json", - }, - }); - console.log(verified); - if (verified == 1) { + try { + verified = await got.post(`${api}/user/verify_password`, { + headers: { + Authorization: auth, + Accept: "application/json", + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + if (verified) { req.session.set("b64", auth); req.session.set("user", name); req.session.set("password", password); - res.redirect("/BankF"); - } else { - req.session.set("errors", ["Password wrong"]); - res.redirect("/login"); } } + res.redirect("/BankF"); }); 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) { //const client = new CCashClient(process.env.BANKAPIURL); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, @@ -393,7 +398,7 @@ fastify.get("/login", async function (req, res) { let errors = req.session.get("errors"); req.session.set("errors", ""); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, @@ -419,7 +424,7 @@ fastify.get("/register", async function (req, res) { let errors = req.session.get("errors"); req.session.set("errors", ""); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, diff --git a/routes/admin.js b/routes/admin.js index 87318c6..3a56aef 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -18,7 +18,7 @@ module.exports = function (fastify, opts, done) { async function (req, res) { //const client = new CCashClient(process.env.BANKAPIURL); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, @@ -55,8 +55,6 @@ module.exports = function (fastify, opts, done) { req.session.set("errors", "please fill in all fields"); } else if (init_pass !== password2) { 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( name, @@ -64,27 +62,26 @@ module.exports = function (fastify, opts, done) { init_pass, parseInt(init_bal) );*/ - - let post = await got.post(`${api}/admin/user/register`, { - headers: { - Authorization: req.session.get("b64"), - Accept: "application/json", - }, - json: { - name: name, - balance: parseInt(init_bal), - pass: init_pass, - }, - }); - console.log(post.body); - if (post == -3) { - req.session.set("errors", "Invalid Request"); - } else if (post == -4) { - req.session.set("errors", "Name too long"); - } else if (post == -5) { - req.session.set("errors", "User already exists"); - } else { - req.session.set("successes", "Account Creation Successful"); + let post; + try { + post = await got.post(`${api}/admin/user/register`, { + headers: { + Authorization: req.session.get("b64"), + Accept: "application/json", + }, + json: { + name: name, + balance: parseInt(init_bal), + pass: init_pass, + }, + }); + post = post.body; + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + if (post) { + req.session.set("successes", `User ${name} registered.`); } res.redirect("/admin"); } @@ -102,23 +99,28 @@ module.exports = function (fastify, opts, done) { req.session.set("successes", ""); req.session.set("errors", ""); //balance = await client.balance(name); - balance = await got(`${api}/user/balance`, { - headers: { - Authorization: req.session.get("b64"), - Accept: "application/json", - }, - query: { - name: name, - }, - }); - balance = parseInt(balance.body); + let responsecode; + try { + balance = await got(`${api}/user/balance`, { + headers: { + Authorization: req.session.get("b64"), + Accept: "application/json", + }, + searchParams: { + name: name, + }, + }); + balance = parseInt(balance.body); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + console.log(balance); - if (balance < 0) { - req.session.set("errors", "User not found"); - } else { + if (balance) { req.session.set( "successes", - "User: " + name + " has " + balance + " monies" + "User: " + name + " has " + balance + " truckstop shitter simoleons" ); } res.redirect("/admin"); @@ -130,76 +132,6 @@ module.exports = function (fastify, opts, done) { { 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) { //const client = new CCashClient(process.env.BANKAPIURL); let { name, amount } = req.body; @@ -211,20 +143,63 @@ module.exports = function (fastify, opts, done) { req.session.get("adminp"), parseInt(amount) );*/ - patch = await got.post(`${api}/admin/add_balance`, { - headers: { - Authorization: req.session.get("b64"), - Accept: "application/json", - }, - json: { - name: name, - amount: parseInt(amount), - }, - }); + try { + patch = await got.patch(`${api}/admin/set_balance`, { + headers: { + Authorization: req.session.get("b64"), + Accept: "application/json", + }, + json: { + name: name, + amount: parseInt(amount), + }, + }); + patch = patch.body; + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + console.log(patch); - if (patch == -1) { - req.session.set("errors", "User not Found"); - } else if (patch == 1) { + if (patch) { + req.session.set("successes", "Change Funds Successful"); + } + 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"); } res.redirect("/admin"); @@ -240,43 +215,35 @@ module.exports = function (fastify, opts, done) { //const client = new CCashClient(process.env.BANKAPIURL); let { name, new_pass, password2 } = req.body; 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"), attempt, new_pass );*/ - patch = await got.patch(`${api}/user/change_password`, { - headers: { - Authorization: req.session.get("b64"), - Accept: "application/json", - }, - json: { - name: name, - new_pass: new_pass, - }, - }); - console.log(patch); - if (patch == -2) { - req.session.set("errors", "Password Wrong"); - res.redirect("/"); - } else { - req.session.set( - "successes", - "Change Password Successful, Please Login Again" - ); - res.redirect("/"); + if (new_pass == password2) { + try { + patch = await got.patch(`${api}/user/change_password`, { + headers: { + Authorization: req.session.get("b64"), + Accept: "application/json", + }, + json: { + name: name, + new_pass: new_pass, + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); } + if (patch) { + req.session.set("successes", "Change Password Successful"); + } + } else { + req.session.set("errors", `Passwords dont match`); } + + res.redirect("/admin"); } ); @@ -290,25 +257,26 @@ module.exports = function (fastify, opts, done) { let { name, attempt } = req.body; //let deleteUser = client.adminDeleteUser(name, attempt); - let deleteUser = await got.delete(`${api}/admin/delete`, { - headers: { - Authorization: req.session.get("b64"), - Accept: "application/json", - }, - json: { - name: name, - }, - }); - - if (deleteUser == -1) { - req.session.errors.push({ - msg: "User Deletion Failed, User Not Found", + try { + let deleteUser = await got.delete(`${api}/admin/delete`, { + headers: { + Authorization: req.session.get("b64"), + Accept: "application/json", + }, + json: { + name: name, + }, }); - res.redirect("/admin"); - } else { - req.session.set("successes", "User Deletion Successful"); - res.redirect("/admin"); + deleteUser = deleteUser.body; + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); } + + if (deleteUser) { + req.session.set("successes", "User Deletion Successful"); + } + res.redirect("/admin"); } ); @@ -350,10 +318,27 @@ module.exports = function (fastify, opts, done) { preValidation: [validateAdmin], }, async function (req, res) { - const client = new CCashClient(process.env.BANKAPIURL); + //const client = new CCashClient(process.env.BANKAPIURL); let { attempt } = req.body; + let name = req.session.get("user"); 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("../"); } ); diff --git a/routes/settings.js b/routes/settings.js index 9b5865b..088f971 100644 --- a/routes/settings.js +++ b/routes/settings.js @@ -3,7 +3,7 @@ const path = require("path"); var pug = require("pug"); const { postUser } = require(`${root}/helpers/functions.js`); const { CCashClient } = require("ccash-client-js"); - +const got = require("got"); function validate(req, res, next) { if (!req.session.get("user")) { res.redirect("/login"); @@ -11,6 +11,7 @@ function validate(req, res, next) { next(); } } +const api = process.env.BANKAPIURL; module.exports = function (fastify, opts, done) { fastify.get( @@ -21,7 +22,7 @@ module.exports = function (fastify, opts, done) { async function (req, res) { //const client = new CCashClient(process.env.BANKAPIURL); //let checkalive = await client.ping(); - let checkalive = await got(`${api}/ping`, { + let checkalive = await got(`${api}/help`, { headers: { Accept: "application/json", }, @@ -71,15 +72,21 @@ module.exports = function (fastify, opts, done) { attempt, new_pass );*/ - patch = await got.patch(`${api}/user/change_password`, { - headers: { - Authorization: auth, - Accept: "application/json", - }, - json: { - new_pass: new_pass, - }, - }); + try { + patch = await got.patch(`${api}/user/change_password`, { + headers: { + Authorization: auth, + Accept: "application/json", + }, + json: { + new_pass: new_pass, + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + console.log(patch); if (patch == -2) { req.session.set("errors", "Password Wrong"); @@ -115,25 +122,31 @@ module.exports = function (fastify, opts, done) { req.session.set("errors", "Passwords don't match"); res.redirect("/settings"); } 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 got.delete(`${api}/delete`, { - headers: { - Authorization: auth, - Accept: "application/json", - }, - }); + try { + del = await got.delete(`${api}/user/delete`, { + headers: { + Authorization: auth, + Accept: "application/json", + }, + }); + } catch (e) { + req.session.set("errors", `${e.response.body}`); + console.log(e.response.body); + } + console.log(del); - if (del == -2) { - req.session.set("errors", "Password Wrong"); - res.redirect("/settings"); - } else { + if (del) { req.session.delete(); req.session.set( "successes", "Account Deleted, pls dont come back to complain" ); - res.redirect("/login"); } + res.redirect("/"); } } ); diff --git a/views/adminsettings.pug b/views/adminsettings.pug index 91e5a75..e02239d 100644 --- a/views/adminsettings.pug +++ b/views/adminsettings.pug @@ -61,23 +61,12 @@ block content input.btn.btn-primary(type='submit',value='Submit') br .card.shadow-lg - h4 Add Balance to User - form(method='POST', action='/admin/addbal') + h4 Impact Balance of User +/- + form(method='POST', action='/admin/impbal') #form-group label Username: input.form-control(name='name', type='name') - label Add 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: + label Amount: input.form-control(name='amount', type='number') br input.btn.btn-primary(type='submit',value='Submit') diff --git a/views/pm2.json b/views/pm2.json deleted file mode 100644 index d56ea19..0000000 --- a/views/pm2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "ccashfrontend", - "script": "/app/ccashfrontend/index.js", - "watch": "/app/ccashfrontend/tmp/restart.txt", - "instances": "1" -}