ccashfrontend/routes/admin.js
2021-04-19 17:32:02 +10:00

168 lines
4.3 KiB
JavaScript

const express = require('express');
const router = express.Router();
const path = require('path');
const {ensureAuthenticated} = require("../config/auth.js")
const {checkAdmin} = require ("../config/admin.js")
var pug = require('pug');
const flash = require ('connect-flash');
const expressValidator = require('express-validator');
const session = require('express-session');
const {postUser} = require('../helpers/functions.js')
const got = require('got')
console.log('Sen was here')
router.get('/', checkAdmin, function(req, res){
res.render('adminsettings', {
user: req.session.user,
admin: req.session.admin,
})
});
router.post('/user',checkAdmin , async function(req,res){
let {name, init_pass, init_bal, password2} = req.body
let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name)
contains = JSON.parse(contains.body).value
let errors = [];
let successes = [];
if(contains == true){
errors.push({msg: 'User already exists'})
res.render('adminsettings',{
errors:errors
})
}else {
if(!name || !init_pass || !init_bal || !password2) {
errors.push({msg : "please fill in all fields"});
}
//check if match
if(init_pass !== password2) {
errors.push({msg : "Passwords don't match"});
}
//check if password is more than 6 characters
if(init_pass.length < 6 ) {
errors.push({msg : 'Password must be at least 6 characters'})
}
let post;
let successes = [];
try{
post = await got.post(process.env.BANKAPIURL+'BankF/admin/user',{
json:{
name: name,
attempt: req.session.adminp,
init_bal: parseInt(init_bal),
init_pass: init_pass,
},
responseType:'json'
})
} catch(err){
console.log(err)
}
if(post.body.value == true){
successes.push({msg: "Account Creation Successful"})
}
}
res.render('adminsettings',{
user: req.session.user,
admin: req.session.admin,
successes: successes,
})
})
router.post('/baluser',checkAdmin , async function(req,res){
let {name} = req.body
let balance;
let successes = [];
let errors = [];
try{
balance = await got(process.env.BANKAPIURL+'BankF/'+name+'/bal')
balance = JSON.parse(balance.body)
} catch(err){
console.log(err)
}
if(balance.value == -1 || balance.value == undefined){
errors.push({msg: "User not found"})
}else{
successes.push({msg: "User: "+name+" has "+balance.value+" monies"})
}
res.render('adminsettings',{
user: req.session.user,
admin: req.session.admin,
successes: successes,
errors: errors,
})
})
router.post('/bal',checkAdmin , async function(req,res){
let {name, amount} = req.body
let patch;
let successes = [];
try{
patch = await got.patch(process.env.BANKAPIURL+'BankF/admin/'+name+'/bal',{
json:{
name: name,
attempt: req.session.adminp,
amount: parseInt(amount),
},
responseType:'json'
})
} catch(err){
console.log(err)
}
if(patch.body.value == true){
successes.push({msg: "Change Funds Successful"})
}
res.render('adminsettings',{
user: req.session.user,
admin: req.session.admin,
successes: successes,
})
})
router.post('/userdelete', checkAdmin, async function(req,res){
let {name, attempt} = req.body
console.log(name)
let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name)
contains = JSON.parse(contains.body).value
let deleteUser;
let successes = [];
let errors = [];
if(attempt != req.session.adminp){
errors.push({msg:"Wrong Admin Password"})
}
console.log(contains)
if(contains == true){
deleteUser = got.delete(process.env.BANKAPIURL+'BankF/admin/user',{
json:{
name: name,
attempt: attempt,
},
responseType:'json'
})
successes.push({msg: "User Deletion Successful"})
} else{
errors.push({msg: "User Deletion Failed, User Not Found"})
}
res.render('adminsettings',{
user: req.session.user,
admin: req.session.admin,
successes: successes,
errors: errors,
})
})
router.post('/close', checkAdmin, async function(req,res){
let {attempt} = req.body;
let close;
close = got.post(process.env.BANKAPIURL+'BankF/admin/close', {
json:{
attempt: attempt,
},
responseType:'json'
})
res.redirect('../')
})
module.exports = router;