diff --git a/config/admin.js b/config/admin.js index 7f597eb..3fccbc1 100644 --- a/config/admin.js +++ b/config/admin.js @@ -1,12 +1,12 @@ module.exports = { - checkAdmin : function(req,res, next) { - if(req.session.admin != false) { - if(req.session.admin != undefined){ + checkAdmin: function (req, res, next) { + if (req.session.admin != false) { + if (req.session.admin != undefined) { return next(); } } - req.flash('error_msg' , 'admins only'); - res.redirect('/'); -} -} + req.flash("error_msg", "admins only"); + res.redirect("/"); + }, +}; diff --git a/config/auth.js b/config/auth.js index 57e806a..b0b2565 100644 --- a/config/auth.js +++ b/config/auth.js @@ -1,9 +1,9 @@ module.exports = { - ensureAuthenticated : function(req,res,next) { - if(req.session.user != undefined) { + ensureAuthenticated: function (req, res, next) { + if (req.session.user != undefined) { return next(); } - req.flash('error_msg' , 'please login to view this resource'); - res.redirect('/login'); -} -} + req.flash("error_msg", "please login to view this resource"); + res.redirect("/login"); + }, +}; diff --git a/helpers/functions.js b/helpers/functions.js index 479be83..bbadebc 100644 --- a/helpers/functions.js +++ b/helpers/functions.js @@ -1,24 +1,19 @@ -const got = require('got'); +const got = require("got"); - - -async function postUser(name, password){ - console.log(process.env.BANKAPIURL) - try{ - const {body} = await got.post(process.env.BANKAPIURL+'BankF/user',{ - json:{ - name: name, - init_pass: password - }, - responseType:'json' - - }) - return body - } catch(err){ - console.log(err) +async function postUser(name, password) { + console.log(process.env.BANKAPIURL); + try { + const { body } = await got.post(process.env.BANKAPIURL + "BankF/user", { + json: { + name: name, + init_pass: password, + }, + responseType: "json", + }); + return body; + } catch (err) { + console.log(err); } } - - -module.exports = { postUser } +module.exports = { postUser }; diff --git a/index.js b/index.js index 9b1320c..0c365ea 100644 --- a/index.js +++ b/index.js @@ -1,449 +1,476 @@ -const express = require('express'); -const path = require('path'); -const https = require('https') -const got = require('got') -const bodyParser = require('body-parser') -const expressValidator = require('express-validator'); -const flash = require ('connect-flash'); -const session = require('express-session'); -const {postUser} = require('./helpers/functions.js') -const {ensureAuthenticated} = require("./config/auth.js") +const express = require("express"); +const path = require("path"); +const https = require("https"); +const got = require("got"); +const bodyParser = require("body-parser"); +const expressValidator = require("express-validator"); +const flash = require("connect-flash"); +const session = require("express-session"); +const { postUser } = require("./helpers/functions.js"); +const { ensureAuthenticated } = require("./config/auth.js"); const app = express(); -const MemoryStore = require('memorystore')(session) -const url = require('url') -const dotenv = require('dotenv'); -const fs = require('fs'); -let Log = require('./schemas/log.js'); -const mongoose = require('mongoose') +const MemoryStore = require("memorystore")(session); +const url = require("url"); +const dotenv = require("dotenv"); +const fs = require("fs"); +let Log = require("./schemas/log.js"); +const mongoose = require("mongoose"); dotenv.config(); -//mongodb connection - - - -app.set('views', path.join(__dirname, 'views')); -app.set('view engine', 'pug'); +app.set("views", path.join(__dirname, "views")); +app.set("view engine", "pug"); app.use(flash()); -app.use(require('connect-flash')()); -app.use(express.static(path.join(__dirname, 'public'))); -app.use(express.json()) -app.use(bodyParser.urlencoded({ - extended: true -})); -app.use(function(req, res, next) { - res.locals.messages = require('express-messages')(req, res); +app.use(require("connect-flash")()); +app.use(express.static(path.join(__dirname, "public"))); +app.use(express.json()); +app.use( + bodyParser.urlencoded({ + extended: true, + }) +); +app.use(function (req, res, next) { + res.locals.messages = require("express-messages")(req, res); next(); }); -app.set('trust proxy', 1) // trust first proxy -let secure = false -if(process.env.SECURE=='true'||process.env.SECURE=='True'||process.env.SECURE=='TRUE'){secure = true} -let setup = false -if(process.env.SETUP=='true'||process.env.SETUP=='True'||process.env.SETUP=='TRUE'){setup=true} -app.use(session({ - secret: 'fuck shit cunt', - resave: true, - store: new MemoryStore({ - checkPeriod: 86400000 // prune expired entries every 24h +app.set("trust proxy", 1); // trust first proxy +let secure = false; +if ( + process.env.SECURE == "true" || + process.env.SECURE == "True" || + process.env.SECURE == "TRUE" +) { + secure = true; +} +let setup = false; +if ( + process.env.SETUP == "true" || + process.env.SETUP == "True" || + process.env.SETUP == "TRUE" +) { + setup = true; +} +app.use( + session({ + secret: "fuck shit cunt", + resave: true, + store: new MemoryStore({ + checkPeriod: 86400000, // prune expired entries every 24h }), - saveUninitialized: true, - cookie: { secure: secure, maxAge: 86400000 }, -})) -app.use(expressValidator({ - errorFormatter: function(param, msg, value) { - var namespace = param.split('.') - , root = namespace.shift() - , formParam = root; + saveUninitialized: true, + cookie: { secure: secure, maxAge: 86400000 }, + }) +); +app.use( + expressValidator({ + errorFormatter: function (param, msg, value) { + var namespace = param.split("."), + root = namespace.shift(), + formParam = root; - while(namespace.length){ - formParam += '[' + namespace.shift() + ']'; - } - return{ - param : formParam, - msg : msg, - value : value + while (namespace.length) { + formParam += "[" + namespace.shift() + "]"; + } + return { + param: formParam, + msg: msg, + value: value, }; + }, + }) +); +app.post("/setup", async function (req, res) { + console.log(req.body); + let { mongo, url, banksecure, marketplace } = req.body; + process.env.MONGO = mongo; + process.env.MARKETPLACE = false; + if (marketplace) { + process.env.MARKETPLACE = true; } -})); -app.post('/setup', async function(req, res){ - - - console.log(req.body) - let {mongo, url, banksecure, marketplace} = req.body; - process.env.MONGO = mongo - process.env.MARKETPLACE = false - if(marketplace){ - process.env.MARKETPLACE = true + if (!url.endsWith("/")) { + url = url + "/"; } - if(!url.endsWith('/')){ - url=url+"/" + process.env.BANKAPIURL = url; + process.env.SECURE = false; + if (!banksecure) { + banksecure = false; + process.env.SECURE = false; } - process.env.BANKAPIURL =url - process.env.SECURE = false - if(!banksecure){ - banksecure = false - process.env.SECURE = false - } - process.env.SETUP = true - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') + process.env.SETUP = true; + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); dotenv.config(); - if(process.env.MARKETPLACE){ - mongoose.connect(process.env.MONGO,{ + if (process.env.MARKETPLACE) { + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } - res.redirect('/') -}) -app.get('/', async function(req, res){ - if(!process.env.SETUP){ - res.render('setup') - }else{ - + res.redirect("/"); +}); +app.get("/", async function (req, res) { + if (!process.env.SETUP) { + res.render("setup"); + } else { let checkalive; - try{ - checkalive = await got(process.env.BANKAPIURL+'BankF/help') - } catch(err){ - console.log(err) - + try { + checkalive = await got(process.env.BANKAPIURL + "BankF/help"); + } catch (err) { + console.log(err); } let alive = false; - try{ - if(checkalive.body){ - alive = true + try { + if (checkalive.body) { + alive = true; } - }catch(err){ - console.log(err) + } catch (err) { + console.log(err); } - res.render('index', { + res.render("index", { user: req.session.user, admin: req.session.admin, alive: alive, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } }); -app.get('/BankF', ensureAuthenticated, async function(req, res){ +app.get("/BankF", ensureAuthenticated, async function (req, res) { let successes = []; - if(req.session.sucess == true){ - successes.push({ msg: "Transfer successful"}) + if (req.session.sucess == true) { + successes.push({ msg: "Transfer successful" }); } - let admin - try{ + let admin; + try { admin = req.session.admin; - }catch(err){ - console.log(err) + } catch (err) { + console.log(err); } - let balance = 0 - try{ - balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') - balance = JSON.parse(balance.body) - } catch(err){ - console.log(err) + let balance = 0; + try { + balance = await got( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" + ); + balance = JSON.parse(balance.body); + } catch (err) { + console.log(err); } - let logsent - let logrec - console.log('start '+Date.now()) - try{ - logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + let logsent; + let logrec; + console.log("start " + Date.now()); + try { + logsent = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - try{ - logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logrec = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - console.log(logrec.timings) - console.log("query finished "+Date.now()) - logsent = logsent.body.value + console.log(logrec.timings); + console.log("query finished " + Date.now()); + logsent = logsent.body.value; - if(logsent == 1 || logsent == -1 || logsent == null){ - logsent = undefined - }else{ - logsent = await logsent.filter(({ from }) => from === req.session.user) + if (logsent == 1 || logsent == -1 || logsent == null) { + logsent = undefined; + } else { + logsent = await logsent.filter(({ from }) => from === req.session.user); } - logrec = logrec.body.value - if(logrec === 1 || logrec === -1 || logrec === null){ - logrec = undefined - } else{ - logrec = await logrec.filter(({ to }) => to === req.session.user) + logrec = logrec.body.value; + if (logrec === 1 || logrec === -1 || logrec === null) { + logrec = undefined; + } else { + logrec = await logrec.filter(({ to }) => to === req.session.user); } - for( i in logrec){ - logrec[i].time = Date(logrec[i].time) + for (i in logrec) { + logrec[i].time = Date(logrec[i].time); } - for( i in logsent){ - logsent[i].time = Date(logsent[i].time) + for (i in logsent) { + logsent[i].time = Date(logsent[i].time); } - console.log("begin render " + Date.now()) - res.render('bankf',{ - logrec:logrec, - logsent:logsent, + console.log("begin render " + Date.now()); + res.render("bankf", { + logrec: logrec, + logsent: logsent, user: req.session.user, balance: balance.value, user: req.session.user, admin: req.session.admin, sucesses: successes, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); }); - -app.post('/sendfunds', async function(req, res){ +app.post("/sendfunds", async function (req, res) { let balance = 0; - try{ - balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') - balance = JSON.parse(balance.body) - } catch(err){ - console.log(err) + try { + balance = await got( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal" + ); + balance = JSON.parse(balance.body); + } catch (err) { + console.log(err); } - let {amount, name, senderpass} = req.body - let a_name = req.session.user + let { amount, name, senderpass } = req.body; + let a_name = req.session.user; let successes = []; let errors = []; - let result = {} - result = await got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ - json:{ + let result = {}; + result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", { + json: { a_name: a_name, b_name: name, amount: parseInt(amount), - attempt: senderpass + attempt: senderpass, }, - responseType:'json' - }) - if(result.body.value == true || result.body.value){ + responseType: "json", + }); + if (result.body.value == true || result.body.value) { req.session.success = true; //post details - res.redirect('/BankF') + res.redirect("/BankF"); } else { - errors.push({msg: "Transfer Unsuccessful"}) + errors.push({ msg: "Transfer Unsuccessful" }); - let logsent - let logrec + let logsent; + let logrec; - try{ - logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logsent = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - try{ - logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ - json:{ - attempt: req.session.password - }, - responseType:'json' - }) - } catch(e) { - console.log(e) + try { + logrec = await got.post( + process.env.BANKAPIURL + "BankF/" + req.session.user + "/log", + { + json: { + attempt: req.session.password, + }, + responseType: "json", + } + ); + } catch (e) { + console.log(e); } - logsent = logsent.body.value - console.log(logsent) - if(logsent == 1|| logsent == -1 || logsent == null){ - logsent = undefined - }else{ - logsent = await logsent.filter(({ from }) => from === req.session.user) + logsent = logsent.body.value; + console.log(logsent); + if (logsent == 1 || logsent == -1 || logsent == null) { + logsent = undefined; + } else { + logsent = await logsent.filter(({ from }) => from === req.session.user); } - logrec = logrec.body.value - if(logrec == 1 || logrec == -1 || logrec == null){ - logrec = undefined - } else{ - logrec = await logrec.filter(({ to }) => to === req.session.user) + logrec = logrec.body.value; + if (logrec == 1 || logrec == -1 || logrec == null) { + logrec = undefined; + } else { + logrec = await logrec.filter(({ to }) => to === req.session.user); } - for( i in logrec){ - let d = new Date(logrec[i].time) - logrec[i].time = d + for (i in logrec) { + let d = new Date(logrec[i].time); + logrec[i].time = d; } - for( i in logsent){ - let d = new Date(logsent[i].time) - logsent[i].time = d + for (i in logsent) { + let d = new Date(logsent[i].time); + logsent[i].time = d; } - res.render("bankf",{ - - logsent:logsent, - logrec:logrec, - errors:errors, + res.render("bankf", { + logsent: logsent, + logrec: logrec, + errors: errors, successes: successes, - balance:balance.value, + balance: balance.value, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } -}) +}); -app.post('/register', async function(req, res){ - var {name, password, password2} = req.body; +app.post("/register", async function (req, res) { + var { name, password, password2 } = req.body; - let checkuser = await got(process.env.BANKAPIURL+'BankF/contains/'+name) - checkuser = JSON.parse(checkuser.body).value + let checkuser = await got(process.env.BANKAPIURL + "BankF/contains/" + name); + checkuser = JSON.parse(checkuser.body).value; let errors = []; let successes = []; - if(checkuser == false){ - if(!name || !password || !password2) { - errors.push({msg : "please fill in all fields"}); + if (checkuser == false) { + if (!name || !password || !password2) { + errors.push({ msg: "please fill in all fields" }); } - if(password !== password2) { - errors.push({msg : "Passwords don't match"}); + if (password !== password2) { + errors.push({ msg: "Passwords don't match" }); } - if(password.length < 6 ) { - errors.push({msg : 'Password must be at least 6 characters'}) + if (password.length < 6) { + errors.push({ msg: "Password must be at least 6 characters" }); } - if(errors[0]){ - res.render('register', { - errors:errors, - marketplace: process.env.MARKETPLACE - }) + if (errors[0]) { + res.render("register", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } else { - if(postUser(name, password)){ - successes.push({msg:"User Registered Please Log In"}) - res.render('login',{ - errors:errors, + if (postUser(name, password)) { + successes.push({ msg: "User Registered Please Log In" }); + res.render("login", { + errors: errors, successes: successes, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } } } else { - errors.push({msg: "User already exists"}) - res.render('register',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) + errors.push({ msg: "User already exists" }); + res.render("register", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } -}) +}); -app.post('/login', async function(req, res){ - if(req.session.user){ - res.redirect("/") +app.post("/login", async function (req, res) { + if (req.session.user) { + res.redirect("/"); } - let {name,password} = req.body + let { name, password } = req.body; let adminTest; let errors = []; - try{ - adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ - json:{ + try { + adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { + json: { attempt: password, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - req.session.password = password - if(adminTest.body.value == undefined){ - res.redirect('/') - }else{ - req.session.admin = adminTest.body.value - req.session.adminp = password - let verified - try{ - verified = await got.post(process.env.BANKAPIURL+'BankF/vpass', { - json:{ + req.session.password = password; + if (adminTest.body.value == undefined) { + res.redirect("/"); + } else { + req.session.admin = adminTest.body.value; + req.session.adminp = password; + let verified; + try { + verified = await got.post(process.env.BANKAPIURL + "BankF/vpass", { + json: { name: name, - attempt: password + attempt: password, }, - responseType:'json' - - }) - - - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } finally { - console.log(verified.body.value) - if(verified.body.value == 0){ - errors.push({msg: 'Password wrong'}) - res.render('login',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) - }else if(verified.body.value == 1){ + console.log(verified.body.value); + if (verified.body.value == 0) { + errors.push({ msg: "Password wrong" }); + res.render("login", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); + } else if (verified.body.value == 1) { req.session.user = name; - req.session.password = password - res.redirect('/BankF') + req.session.password = password; + res.redirect("/BankF"); } else { - errors.push({msg: 'User not found'}) - res.render('login',{ - errors:errors, - marketplace: process.env.MARKETPLACE - }) + errors.push({ msg: "User not found" }); + res.render("login", { + errors: errors, + marketplace: process.env.MARKETPLACE, + }); } } - } - //res.redirect('/login') -}) - - -let admin = require('./routes/admin'); -app.use('/admin', admin); - -let settings = require('./routes/settings'); -app.use('/settings', settings) - -let marketplace = require('./routes/marketplace') -app.use('/marketplace', marketplace) - - -app.get('/logout', function(req, res){ - req.session.regenerate(function(err) { - res.render('login', { - marketplace: process.env.MARKETPLACE - }) - }) }); +let admin = require("./routes/admin"); +app.use("/admin", admin); -app.get('/login', function(req, res){ - req.session.regenerate(function(err) { - res.render('login', { +let settings = require("./routes/settings"); +app.use("/settings", settings); + +let marketplace = require("./routes/marketplace"); +app.use("/marketplace", marketplace); + +app.get("/logout", function (req, res) { + req.session.regenerate(function (err) { + res.render("login", { + marketplace: process.env.MARKETPLACE, + }); + }); +}); + +app.get("/login", function (req, res) { + req.session.regenerate(function (err) { + res.render("login", { user: req.session.user, - marketplace: process.env.MARKETPLACE - }) - }) + marketplace: process.env.MARKETPLACE, + }); + }); }); -app.get('/register', function(req, res){ - res.render('register', { +app.get("/register", function (req, res) { + res.render("register", { user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) - + marketplace: process.env.MARKETPLACE, + }); }); - - -app.listen(process.env.PORT || 3000, function(){ - console.log('Server started on port 3000...'); +app.listen(process.env.PORT || 3000, function () { + console.log("Server started on port 3000..."); }); diff --git a/routes/admin.js b/routes/admin.js index c5672f2..e7451f8 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -1,268 +1,285 @@ -const express = require('express'); +const express = require("express"); const router = express.Router(); -const path = require('path'); -const {ensureAuthenticated} = require("../config/auth.js") -const {checkAdmin} = require ("../config/admin.js") -const 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') -const MemoryStore = require('memorystore')(session) -const fs = require('fs'); -const mongoose = require('mongoose') -console.log('Sen was here') +const path = require("path"); +const { ensureAuthenticated } = require("../config/auth.js"); +const { checkAdmin } = require("../config/admin.js"); +const 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"); +const MemoryStore = require("memorystore")(session); +const fs = require("fs"); +const mongoose = require("mongoose"); +console.log("Sen was here"); - - - - -function mongo(){ - if(process.env.MONGO){ - console.log(process.env.MONGO) - mongoose.connect(process.env.MONGO,{ +function mongo() { + if (process.env.MONGO) { + console.log(process.env.MONGO); + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } } - - - - - -router.get('/', checkAdmin, function(req, res){ - res.render('adminsettings', { +router.get("/", checkAdmin, function (req, res) { + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) - + marketplace: process.env.MARKETPLACE, + }); }); - -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 +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"}); + 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"}); + 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'}) + 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:{ + 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) + responseType: "json", + }); + } catch (err) { + console.log(err); } - if(post.body.value == true){ - successes.push({msg: "Account Creation Successful"}) + if (post.body.value == true) { + successes.push({ msg: "Account Creation Successful" }); } } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, - marketplace: process.env.MARKETPLACE - }) -}) + marketplace: process.env.MARKETPLACE, + }); +}); - -router.post('/baluser',checkAdmin , async function(req,res){ - let {name} = req.body +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) + 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"}) + 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',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, errors: errors, - marketplace: process.env.MARKETPLACE - }) -}) + marketplace: process.env.MARKETPLACE, + }); +}); - -router.post('/bal',checkAdmin , async function(req,res){ - let {name, amount} = req.body +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) + 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"}) + if (patch.body.value == true) { + successes.push({ msg: "Change Funds Successful" }); } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, - marketplace: process.env.MARKETPLACE - }) -}) -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 + marketplace: process.env.MARKETPLACE, + }); +}); +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"}) + 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:{ + 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"}) + responseType: "json", + }); + successes.push({ msg: "User Deletion Successful" }); + } else { + errors.push({ msg: "User Deletion Failed, User Not Found" }); } - res.render('adminsettings',{ + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, successes: successes, errors: errors, - marketplace: process.env.MARKETPLACE - }) -}) -router.post('/destroyallsessions', checkAdmin, async function(req,res) { - let {attempt} = req.body; - let adminTest - let errors = [] - try{ - adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ - json:{ + marketplace: process.env.MARKETPLACE, + }); +}); +router.post("/destroyallsessions", checkAdmin, async function (req, res) { + let { attempt } = req.body; + let adminTest; + let errors = []; + try { + adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", { + json: { attempt: attempt, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - console.log(adminTest.body.value) - if(adminTest){ - req.sessionStore.clear(function(err){ - console.log(err) - }) - res.redirect('/') - }else{ - errors.push({msg: "failed admin password check"}) - res.render("adminsettings",{ + console.log(adminTest.body.value); + if (adminTest) { + req.sessionStore.clear(function (err) { + console.log(err); + }); + res.redirect("/"); + } else { + errors.push({ msg: "failed admin password check" }); + res.render("adminsettings", { user: req.session.user, admin: req.session.admin, errors: errors, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); + } +}); + +router.post("/changebackend", checkAdmin, async function (req, res) { + let { url } = req.body; + if (!url.endsWith("/")) { + url = url + "/"; + } + process.env.BANKAPIURL = url; + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); + res.redirect("../"); +}); +router.post("/mongodb", checkAdmin, async function (req, res) { + let { url } = req.body; + process.env.MONGO = url; + + if (process.env.MONGO.length < 3) { + process.env.MARKETPLACE = false; + console.log("false"); + } else { + process.env.MARKETPLACE = true; + console.log("true"); + } + fs.writeFileSync( + ".env", + "BANKAPIURL=" + + process.env.BANKAPIURL + + "\n" + + "SECURE=" + + process.env.SECURE + + "\n" + + "MARKETPLACE=" + + process.env.MARKETPLACE + + "\n" + + "MONGO=" + + process.env.MONGO + + "\nSETUP=true" + ); + try { + mongo(); + } catch (e) { + console.log(e); } -}) - - - - -router.post('/changebackend', checkAdmin, async function(req,res){ - let {url} = req.body; - if(!url.endsWith('/')){ - url = url+'/' - } - process.env.BANKAPIURL = url - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') - res.redirect('../') -}) -router.post('/mongodb', checkAdmin, async function(req,res){ - let {url} = req.body; - process.env.MONGO = url - - if(process.env.MONGO.length < 3){ - process.env.MARKETPLACE = false - console.log("false") - }else { process.env.MARKETPLACE = true;console.log("true")} - fs.writeFileSync('.env', "BANKAPIURL="+process.env.BANKAPIURL+'\n'+"SECURE="+process.env.SECURE+'\n'+"MARKETPLACE="+process.env.MARKETPLACE+'\n'+"MONGO="+process.env.MONGO+'\nSETUP=true') - try{ - mongo() - }catch(e){ - console.log(e) - } - - res.redirect('../') -}) -router.post('/close', checkAdmin, async function(req,res){ - let {attempt} = req.body; + res.redirect("../"); +}); +router.post("/close", checkAdmin, async function (req, res) { + let { attempt } = req.body; let close; - close = got.post(process.env.BANKAPIURL+'BankF/admin/close', { - json:{ + close = got.post(process.env.BANKAPIURL + "BankF/admin/close", { + json: { attempt: attempt, }, - responseType:'json' - }) - res.redirect('../') -}) - - + responseType: "json", + }); + res.redirect("../"); +}); module.exports = router; diff --git a/routes/marketplace.js b/routes/marketplace.js index 3f8666c..b1eb76a 100644 --- a/routes/marketplace.js +++ b/routes/marketplace.js @@ -1,224 +1,213 @@ -const express = require('express') -const router = express.Router() -const bodyParser = require('body-parser') -const session = require('express-session'); -const mongoose = require('mongoose') -const dotenv = require('dotenv'); -const got = require('got'); -const {ensureAuthenticated} = require("../config/auth.js") -let db +const express = require("express"); +const router = express.Router(); +const bodyParser = require("body-parser"); +const session = require("express-session"); +const mongoose = require("mongoose"); +const dotenv = require("dotenv"); +const got = require("got"); +const { ensureAuthenticated } = require("../config/auth.js"); +let db; - - -function mongo(){ - if(process.env.MONGO){ - console.log(process.env.MONGO) - mongoose.connect(process.env.MONGO,{ +function mongo() { + if (process.env.MONGO) { + console.log(process.env.MONGO); + mongoose.connect(process.env.MONGO, { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: true, }); let db = mongoose.connection; - db.once('open', function(){ - console.log('Connected to MongoDB'); - }) + db.once("open", function () { + console.log("Connected to MongoDB"); + }); //check for DB errors - db.on('error', function(err){ + db.on("error", function (err) { console.log(err); }); } } -mongo() +mongo(); +let Item = require("../schemas/item"); +let Listing = require("../schemas/listing"); +let Inventory = require("../schemas/inventory"); -let Item = require('../schemas/item') -let Listing = require('../schemas/listing') -let Inventory = require('../schemas/inventory') - -router.all('*', function(req, res, next) { - console.log(req.method, req.url); - next(); +router.all("*", function (req, res, next) { + console.log(req.method, req.url); + next(); }); -router.get('/', function(req, res) { - let columns = [0,1,2,3] - Item.find({}, function(err, items){ - if(err){ +router.get("/", function (req, res) { + let columns = [0, 1, 2, 3]; + Item.find({}, function (err, items) { + if (err) { console.log(err); } else { - res.render('marketplace', { - columns:columns, + res.render("marketplace", { + columns: columns, items: items, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE + marketplace: process.env.MARKETPLACE, }); } - }) + }); }); - -router.get('/marketdash', ensureAuthenticated, function(req,res){ - Inventory.findOne({user:req.session.user}, async function(err, inventory){ - if(!inventory){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.save(function(err){ - if(err){ +router.get("/marketdash", ensureAuthenticated, function (req, res) { + Inventory.findOne({ user: req.session.user }, async function ( + err, + inventory + ) { + if (!inventory) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("created new inventory for "+req.session.user) + } else { + console.log("created new inventory for " + req.session.user); } - }) + }); } - res.render('marketdash',{ - user:req.session.user, - admin:req.session.admin, - inventory:inventory, - marketplace: process.env.MARKETPLACE - }) - }) + res.render("marketdash", { + user: req.session.user, + admin: req.session.admin, + inventory: inventory, + marketplace: process.env.MARKETPLACE, + }); + }); +}); +router.get("/:id", function (req, res) { + Item.findById(req.params.id, function (err, item) { + Listing.find({ foreignid: req.params.id }, function (err, listings) { + console.log(listings); -}) - -router.get('/:id',function(req, res){ - Item.findById(req.params.id, function(err, item){ - Listing.find({foreignid: req.params.id}, function(err, listings){ - console.log(listings) - - - res.render('item', { + res.render("item", { listings: listings, - user:req.session.user, - admin:req.session.admin, - item:item, - marketplace: process.env.MARKETPLACE + user: req.session.user, + admin: req.session.admin, + item: item, + marketplace: process.env.MARKETPLACE, }); - }) - }); -}) - -router.get('/:id/list',ensureAuthenticated, function(req,res){ - Item.findById(req.params.id, function(err, item){ - res.render('itemlist', { - user:req.session.user, - admin:req.session.admin, - item:item, - marketplace: process.env.MARKETPLACE }); }); -}) -router.get('/:id/buy',ensureAuthenticated, function(req,res){ - Listing.find({foreignid: req.params.id}, function(err, listings){ - console.log(listings) +}); - - res.render('itembuy', { - listings:listings, - user:req.session.user, - admin:req.session.admin, - marketplace: process.env.MARKETPLACE +router.get("/:id/list", ensureAuthenticated, function (req, res) { + Item.findById(req.params.id, function (err, item) { + res.render("itemlist", { + user: req.session.user, + admin: req.session.admin, + item: item, + marketplace: process.env.MARKETPLACE, }); }); -}) +}); +router.get("/:id/buy", ensureAuthenticated, function (req, res) { + Listing.find({ foreignid: req.params.id }, function (err, listings) { + console.log(listings); + res.render("itembuy", { + listings: listings, + user: req.session.user, + admin: req.session.admin, + marketplace: process.env.MARKETPLACE, + }); + }); +}); - - - - -router.post('/:id/list',ensureAuthenticated, async function(req,res){ - let body = req.body - let item = JSON.parse(req.body.item) - console.log(item) +router.post("/:id/list", ensureAuthenticated, async function (req, res) { + let body = req.body; + let item = JSON.parse(req.body.item); + console.log(item); let listing = new Listing(); - listing.itemId = item.itemId - listing.meta = item.meta - listing.name = item.name - listing.foreignid = item._id - listing.price = body.price - listing.amount = body.amount - listing.seller = req.session.user - listing.save(function(err){ - if(err){ + listing.itemId = item.itemId; + listing.meta = item.meta; + listing.name = item.name; + listing.foreignid = item._id; + listing.price = body.price; + listing.amount = body.amount; + listing.seller = req.session.user; + listing.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("added "+ listing.name+" from "+listing.seller) - } - }) - let inventory = await Inventory.findOne({user:req.session.user}).exec() - if( inventory == null){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.listings = listing; - newinv.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("created new inventory for "+req.session.user) - } - }) - } else { - inventory.listings.push(listing) - inventory.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("pushed new listing") - } - }) - } - res.redirect('/marketplace/marketdash') -}) -router.post('/:id/buy',async function(req, res){ - Listing.findOne({_id: req.params.id}, async function(err, listing){ - - let inventory = await Inventory.findOne({user:req.session.user}).exec() - if(inventory == null){ - let newinv = new Inventory; - newinv.user = req.session.user - newinv.purchases = listing; - newinv.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("created new inventory for "+req.session.user) - } - }) } else { - inventory.purchases.push(listing) - inventory.save(function(err){ - if(err){ + console.log("added " + listing.name + " from " + listing.seller); + } + }); + let inventory = await Inventory.findOne({ user: req.session.user }).exec(); + if (inventory == null) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.listings = listing; + newinv.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("created new inventory for " + req.session.user); + } + }); + } else { + inventory.listings.push(listing); + inventory.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("pushed new listing"); + } + }); + } + res.redirect("/marketplace/marketdash"); +}); +router.post("/:id/buy", async function (req, res) { + Listing.findOne({ _id: req.params.id }, async function (err, listing) { + let inventory = await Inventory.findOne({ user: req.session.user }).exec(); + if (inventory == null) { + let newinv = new Inventory(); + newinv.user = req.session.user; + newinv.purchases = listing; + newinv.save(function (err) { + if (err) { console.log(err); return; - } else{ - console.log("pushed new purchase") + } else { + console.log("created new inventory for " + req.session.user); } - }) + }); + } else { + inventory.purchases.push(listing); + inventory.save(function (err) { + if (err) { + console.log(err); + return; + } else { + console.log("pushed new purchase"); + } + }); } - Listing.findOneAndRemove({_id:req.params.id}).exec() - transfer = got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ - json:{ + Listing.findOneAndRemove({ _id: req.params.id }).exec(); + transfer = got.post(process.env.BANKAPIURL + "BankF/sendfunds", { + json: { a_name: req.session.user, b_name: listing.seller, - amount: parseInt(listing.amount*listing.price), - attempt: req.session.password + amount: parseInt(listing.amount * listing.price), + attempt: req.session.password, }, - responseType:'json' - }) - res.redirect("/marketplace/marketdash") - }) -}) + responseType: "json", + }); + res.redirect("/marketplace/marketdash"); + }); +}); // this thingy here populates the database with minecraft items only use once otherwise you are gonna flood your database /*router.get('/populatedb', async function(req,res){ @@ -242,7 +231,4 @@ router.post('/:id/buy',async function(req, res){ } })*/ - - - -module.exports = router +module.exports = router; diff --git a/routes/settings.js b/routes/settings.js index 8139588..f8256ab 100644 --- a/routes/settings.js +++ b/routes/settings.js @@ -1,75 +1,70 @@ -const express = require('express'); +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') +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"); -router.get('/',ensureAuthenticated , function(req, res){ - res.render('settings', { +router.get("/", ensureAuthenticated, function (req, res) { + res.render("settings", { user: req.session.user, admin: req.session.admin, - }) - + }); }); -router.post('/pass', ensureAuthenticated, async function(req, res){ - let {attempt, new_pass, password2} = req.body +router.post("/pass", ensureAuthenticated, async function (req, res) { + let { attempt, new_pass, password2 } = req.body; let patch; let successes = []; let errors = []; - if(!attempt || !new_pass || !password2) { - errors.push({msg : "please fill in all fields"}); + if (!attempt || !new_pass || !password2) { + errors.push({ msg: "please fill in all fields" }); } //check if match - if(new_pass !== password2) { - errors.push({msg : "Passwords don't match"}); + if (new_pass !== password2) { + errors.push({ msg: "Passwords don't match" }); } //check if password is more than 6 characters - if(new_pass.length < 6 ) { - errors.push({msg : 'Password must be at least 6 characters'}) + if (new_pass.length < 6) { + errors.push({ msg: "Password must be at least 6 characters" }); } - if(errors[0]){ - res.render('settings', { - errors:errors, + if (errors[0]) { + res.render("settings", { + errors: errors, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE - }) + marketplace: process.env.MARKETPLACE, + }); } - try{ - patch = await got.patch('https://ccash.ryzerth.com/BankF/changepass',{ - json:{ + try { + patch = await got.patch("https://ccash.ryzerth.com/BankF/changepass", { + json: { name: req.session.user, attempt: attempt, new_pass: new_pass, }, - responseType:'json' - }) - } catch(err){ - console.log(err) + responseType: "json", + }); + } catch (err) { + console.log(err); } - console.log(patch) - if(patch.body.value == true){ - successes.push({msg: "Change Password Successful, Please Login Again"}) + console.log(patch); + if (patch.body.value == true) { + successes.push({ msg: "Change Password Successful, Please Login Again" }); } - req.session.regenerate(function(err) { - res.render('login', { + req.session.regenerate(function (err) { + res.render("login", { successes: successes, - errors:errors, - marketplace: process.env.MARKETPLACE - }) - }) -}) - - - - + errors: errors, + marketplace: process.env.MARKETPLACE, + }); + }); +}); module.exports = router; diff --git a/schemas/inventory.js b/schemas/inventory.js index 7856b01..cb5cfd4 100644 --- a/schemas/inventory.js +++ b/schemas/inventory.js @@ -1,72 +1,78 @@ -const mongoose = require('mongoose'); -const Listing = require("./listing.js") - +const mongoose = require("mongoose"); +const Listing = require("./listing.js"); const InventorySchema = mongoose.Schema({ - user:{ + user: { type: String, required: true, }, - listings:[{ - itemId:{ - type: Number, - required: true, + listings: [ + { + itemId: { + type: Number, + required: true, + }, + meta: { + type: Number, + required: false, + }, + name: { + type: String, + required: true, + }, + foreignid: { + type: String, + required: true, + }, + price: { + type: Number, + required: true, + }, + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, }, - meta:{ - type: Number, - required: false + ], + purchases: [ + { + itemId: { + type: Number, + required: true, + }, + meta: { + type: Number, + required: false, + }, + name: { + type: String, + required: true, + }, + foreignid: { + type: String, + required: true, + }, + price: { + type: Number, + required: true, + }, + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, }, - name:{ - type: String, - required: true - }, - foreignid:{ - type: String, - required: true, - }, - price:{ - type:Number, - required: true - }, - amount:{ - type: Number, - required:true - }, - seller:{ - type:String, - required:true, - } - }], - purchases:[{ - itemId:{ - type: Number, - required: true, - }, - meta:{ - type: Number, - required: false - }, - name:{ - type: String, - required: true - }, - foreignid:{ - type: String, - required: true, - }, - price:{ - type:Number, - required: true - }, - amount:{ - type: Number, - required:true - }, - seller:{ - type:String, - required:true, - } - }], -}) + ], +}); -const Inventory = module.exports = mongoose.model('Inventory', InventorySchema); +const Inventory = (module.exports = mongoose.model( + "Inventory", + InventorySchema +)); diff --git a/schemas/item.js b/schemas/item.js index 651cb7c..7daec33 100644 --- a/schemas/item.js +++ b/schemas/item.js @@ -1,27 +1,26 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const ItemSchema = mongoose.Schema({ - itemId:{ + itemId: { type: Number, required: true, }, - meta:{ + meta: { type: Number, - required: false + required: false, }, - name:{ - type: String, - required: true - }, - text_type:{ + name: { type: String, required: true, }, - price:{ - type:Number, - required: false - } -}) + text_type: { + type: String, + required: true, + }, + price: { + type: Number, + required: false, + }, +}); -const Item = module.exports = mongoose.model('Item', ItemSchema); +const Item = (module.exports = mongoose.model("Item", ItemSchema)); diff --git a/schemas/listing.js b/schemas/listing.js index d030fd8..eb2b565 100644 --- a/schemas/listing.js +++ b/schemas/listing.js @@ -1,35 +1,34 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const ListingSchema = mongoose.Schema({ - itemId:{ + itemId: { type: Number, required: true, }, - meta:{ + meta: { type: Number, - required: false + required: false, }, - name:{ - type: String, - required: true - }, - foreignid:{ + name: { type: String, required: true, }, - price:{ - type:Number, - required: true + foreignid: { + type: String, + required: true, }, - amount:{ + price: { type: Number, - required:true + required: true, }, - seller:{ - type:String, - required:true, - } -}) + amount: { + type: Number, + required: true, + }, + seller: { + type: String, + required: true, + }, +}); -const Listing = module.exports = mongoose.model('Listing', ListingSchema); +const Listing = (module.exports = mongoose.model("Listing", ListingSchema)); diff --git a/schemas/log.js b/schemas/log.js index 08876f2..c8024da 100644 --- a/schemas/log.js +++ b/schemas/log.js @@ -1,24 +1,23 @@ -const mongoose = require('mongoose'); - +const mongoose = require("mongoose"); const LogSchema = mongoose.Schema({ - sender:{ + sender: { type: String, required: true, }, - receiver:{ + receiver: { type: String, - required: true + required: true, }, - amount:{ + amount: { type: Number, - required: true + required: true, }, - date:{ - type:Date, + date: { + type: Date, default: Date(), - required: true - } -}) + required: true, + }, +}); -const Log = module.exports = mongoose.model('Log', LogSchema); +const Log = (module.exports = mongoose.model("Log", LogSchema));