linted som shiz

This commit is contained in:
Expand-sys 2021-05-09 10:29:13 +10:00
parent ae24d51c9a
commit 14561307b9
11 changed files with 903 additions and 880 deletions

View file

@ -1,12 +1,12 @@
module.exports = { module.exports = {
checkAdmin : function(req,res, next) { checkAdmin: function (req, res, next) {
if(req.session.admin != false) { if (req.session.admin != false) {
if(req.session.admin != undefined){ if (req.session.admin != undefined) {
return next(); return next();
} }
} }
req.flash('error_msg' , 'admins only'); req.flash("error_msg", "admins only");
res.redirect('/'); res.redirect("/");
} },
} };

View file

@ -1,9 +1,9 @@
module.exports = { module.exports = {
ensureAuthenticated : function(req,res,next) { ensureAuthenticated: function (req, res, next) {
if(req.session.user != undefined) { if (req.session.user != undefined) {
return next(); return next();
} }
req.flash('error_msg' , 'please login to view this resource'); req.flash("error_msg", "please login to view this resource");
res.redirect('/login'); res.redirect("/login");
} },
} };

View file

@ -1,24 +1,19 @@
const got = require('got'); const got = require("got");
async function postUser(name, password) {
console.log(process.env.BANKAPIURL);
async function postUser(name, password){ try {
console.log(process.env.BANKAPIURL) const { body } = await got.post(process.env.BANKAPIURL + "BankF/user", {
try{ json: {
const {body} = await got.post(process.env.BANKAPIURL+'BankF/user',{ name: name,
json:{ init_pass: password,
name: name, },
init_pass: password responseType: "json",
}, });
responseType:'json' return body;
} catch (err) {
}) console.log(err);
return body
} catch(err){
console.log(err)
} }
} }
module.exports = { postUser };
module.exports = { postUser }

685
index.js
View file

@ -1,449 +1,476 @@
const express = require('express'); const express = require("express");
const path = require('path'); const path = require("path");
const https = require('https') const https = require("https");
const got = require('got') const got = require("got");
const bodyParser = require('body-parser') const bodyParser = require("body-parser");
const expressValidator = require('express-validator'); const expressValidator = require("express-validator");
const flash = require ('connect-flash'); const flash = require("connect-flash");
const session = require('express-session'); const session = require("express-session");
const {postUser} = require('./helpers/functions.js') const { postUser } = require("./helpers/functions.js");
const {ensureAuthenticated} = require("./config/auth.js") const { ensureAuthenticated } = require("./config/auth.js");
const app = express(); const app = express();
const MemoryStore = require('memorystore')(session) const MemoryStore = require("memorystore")(session);
const url = require('url') const url = require("url");
const dotenv = require('dotenv'); const dotenv = require("dotenv");
const fs = require('fs'); const fs = require("fs");
let Log = require('./schemas/log.js'); let Log = require("./schemas/log.js");
const mongoose = require('mongoose') const mongoose = require("mongoose");
dotenv.config(); 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(flash());
app.use(require('connect-flash')()); app.use(require("connect-flash")());
app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, "public")));
app.use(express.json()) app.use(express.json());
app.use(bodyParser.urlencoded({ app.use(
extended: true bodyParser.urlencoded({
})); extended: true,
app.use(function(req, res, next) { })
res.locals.messages = require('express-messages')(req, res); );
app.use(function (req, res, next) {
res.locals.messages = require("express-messages")(req, res);
next(); next();
}); });
app.set('trust proxy', 1) // trust first proxy app.set("trust proxy", 1); // trust first proxy
let secure = false let secure = false;
if(process.env.SECURE=='true'||process.env.SECURE=='True'||process.env.SECURE=='TRUE'){secure = true} if (
let setup = false process.env.SECURE == "true" ||
if(process.env.SETUP=='true'||process.env.SETUP=='True'||process.env.SETUP=='TRUE'){setup=true} process.env.SECURE == "True" ||
app.use(session({ process.env.SECURE == "TRUE"
secret: 'fuck shit cunt', ) {
resave: true, secure = true;
store: new MemoryStore({ }
checkPeriod: 86400000 // prune expired entries every 24h 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, saveUninitialized: true,
cookie: { secure: secure, maxAge: 86400000 }, cookie: { secure: secure, maxAge: 86400000 },
})) })
app.use(expressValidator({ );
errorFormatter: function(param, msg, value) { app.use(
var namespace = param.split('.') expressValidator({
, root = namespace.shift() errorFormatter: function (param, msg, value) {
, formParam = root; var namespace = param.split("."),
root = namespace.shift(),
formParam = root;
while(namespace.length){ while (namespace.length) {
formParam += '[' + namespace.shift() + ']'; formParam += "[" + namespace.shift() + "]";
} }
return{ return {
param : formParam, param: formParam,
msg : msg, msg: msg,
value : value 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;
} }
})); if (!url.endsWith("/")) {
app.post('/setup', async function(req, res){ url = url + "/";
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('/')){ process.env.BANKAPIURL = url;
url=url+"/" process.env.SECURE = false;
if (!banksecure) {
banksecure = false;
process.env.SECURE = false;
} }
process.env.BANKAPIURL =url process.env.SETUP = true;
process.env.SECURE = false fs.writeFileSync(
if(!banksecure){ ".env",
banksecure = false "BANKAPIURL=" +
process.env.SECURE = false process.env.BANKAPIURL +
} "\n" +
process.env.SETUP = true "SECURE=" +
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.SECURE +
"\n" +
"MARKETPLACE=" +
process.env.MARKETPLACE +
"\n" +
"MONGO=" +
process.env.MONGO +
"\nSETUP=true"
);
dotenv.config(); dotenv.config();
if(process.env.MARKETPLACE){ if (process.env.MARKETPLACE) {
mongoose.connect(process.env.MONGO,{ mongoose.connect(process.env.MONGO, {
useNewUrlParser: true, useNewUrlParser: true,
useUnifiedTopology: true, useUnifiedTopology: true,
useFindAndModify: true, useFindAndModify: true,
}); });
let db = mongoose.connection; let db = mongoose.connection;
db.once('open', function(){ db.once("open", function () {
console.log('Connected to MongoDB'); console.log("Connected to MongoDB");
}) });
//check for DB errors //check for DB errors
db.on('error', function(err){ db.on("error", function (err) {
console.log(err); console.log(err);
}); });
} }
res.redirect('/') res.redirect("/");
}) });
app.get('/', async function(req, res){ app.get("/", async function (req, res) {
if(!process.env.SETUP){ if (!process.env.SETUP) {
res.render('setup') res.render("setup");
}else{ } else {
let checkalive; let checkalive;
try{ try {
checkalive = await got(process.env.BANKAPIURL+'BankF/help') checkalive = await got(process.env.BANKAPIURL + "BankF/help");
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
let alive = false; let alive = false;
try{ try {
if(checkalive.body){ if (checkalive.body) {
alive = true alive = true;
} }
}catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
res.render('index', { res.render("index", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
alive: alive, 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 = []; let successes = [];
if(req.session.sucess == true){ if (req.session.sucess == true) {
successes.push({ msg: "Transfer successful"}) successes.push({ msg: "Transfer successful" });
} }
let admin let admin;
try{ try {
admin = req.session.admin; admin = req.session.admin;
}catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
let balance = 0 let balance = 0;
try{ try {
balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') balance = await got(
balance = JSON.parse(balance.body) process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
} catch(err){ );
console.log(err) balance = JSON.parse(balance.body);
} catch (err) {
console.log(err);
} }
let logsent let logsent;
let logrec let logrec;
console.log('start '+Date.now()) console.log("start " + Date.now());
try{ try {
logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ logsent = await got.post(
json:{ process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
attempt: req.session.password {
}, json: {
responseType:'json' attempt: req.session.password,
}) },
} catch(e) { responseType: "json",
console.log(e) }
);
} catch (e) {
console.log(e);
} }
try{ try {
logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ logrec = await got.post(
json:{ process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
attempt: req.session.password {
}, json: {
responseType:'json' attempt: req.session.password,
}) },
} catch(e) { responseType: "json",
console.log(e) }
);
} catch (e) {
console.log(e);
} }
console.log(logrec.timings) console.log(logrec.timings);
console.log("query finished "+Date.now()) console.log("query finished " + Date.now());
logsent = logsent.body.value logsent = logsent.body.value;
if(logsent == 1 || logsent == -1 || logsent == null){ if (logsent == 1 || logsent == -1 || logsent == null) {
logsent = undefined logsent = undefined;
}else{ } else {
logsent = await logsent.filter(({ from }) => from === req.session.user) logsent = await logsent.filter(({ from }) => from === req.session.user);
} }
logrec = logrec.body.value logrec = logrec.body.value;
if(logrec === 1 || logrec === -1 || logrec === null){ if (logrec === 1 || logrec === -1 || logrec === null) {
logrec = undefined logrec = undefined;
} else{ } else {
logrec = await logrec.filter(({ to }) => to === req.session.user) logrec = await logrec.filter(({ to }) => to === req.session.user);
} }
for( i in logrec){ for (i in logrec) {
logrec[i].time = Date(logrec[i].time) logrec[i].time = Date(logrec[i].time);
} }
for( i in logsent){ for (i in logsent) {
logsent[i].time = Date(logsent[i].time) logsent[i].time = Date(logsent[i].time);
} }
console.log("begin render " + Date.now()) console.log("begin render " + Date.now());
res.render('bankf',{ res.render("bankf", {
logrec:logrec, logrec: logrec,
logsent:logsent, logsent: logsent,
user: req.session.user, user: req.session.user,
balance: balance.value, balance: balance.value,
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
sucesses: successes, 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; let balance = 0;
try{ try {
balance = await got(process.env.BANKAPIURL+'BankF/'+req.session.user+'/bal') balance = await got(
balance = JSON.parse(balance.body) process.env.BANKAPIURL + "BankF/" + req.session.user + "/bal"
} catch(err){ );
console.log(err) balance = JSON.parse(balance.body);
} catch (err) {
console.log(err);
} }
let {amount, name, senderpass} = req.body let { amount, name, senderpass } = req.body;
let a_name = req.session.user let a_name = req.session.user;
let successes = []; let successes = [];
let errors = []; let errors = [];
let result = {} let result = {};
result = await got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ result = await got.post(process.env.BANKAPIURL + "BankF/sendfunds", {
json:{ json: {
a_name: a_name, a_name: a_name,
b_name: name, b_name: name,
amount: parseInt(amount), amount: parseInt(amount),
attempt: senderpass attempt: senderpass,
}, },
responseType:'json' responseType: "json",
}) });
if(result.body.value == true || result.body.value){ if (result.body.value == true || result.body.value) {
req.session.success = true; req.session.success = true;
//post details //post details
res.redirect('/BankF') res.redirect("/BankF");
} else { } else {
errors.push({msg: "Transfer Unsuccessful"}) errors.push({ msg: "Transfer Unsuccessful" });
let logsent let logsent;
let logrec let logrec;
try{ try {
logsent = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ logsent = await got.post(
json:{ process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
attempt: req.session.password {
}, json: {
responseType:'json' attempt: req.session.password,
}) },
} catch(e) { responseType: "json",
console.log(e) }
);
} catch (e) {
console.log(e);
} }
try{ try {
logrec = await got.post(process.env.BANKAPIURL+'BankF/'+req.session.user+'/log',{ logrec = await got.post(
json:{ process.env.BANKAPIURL + "BankF/" + req.session.user + "/log",
attempt: req.session.password {
}, json: {
responseType:'json' attempt: req.session.password,
}) },
} catch(e) { responseType: "json",
console.log(e) }
);
} catch (e) {
console.log(e);
} }
logsent = logsent.body.value logsent = logsent.body.value;
console.log(logsent) console.log(logsent);
if(logsent == 1|| logsent == -1 || logsent == null){ if (logsent == 1 || logsent == -1 || logsent == null) {
logsent = undefined logsent = undefined;
}else{ } else {
logsent = await logsent.filter(({ from }) => from === req.session.user) logsent = await logsent.filter(({ from }) => from === req.session.user);
} }
logrec = logrec.body.value logrec = logrec.body.value;
if(logrec == 1 || logrec == -1 || logrec == null){ if (logrec == 1 || logrec == -1 || logrec == null) {
logrec = undefined logrec = undefined;
} else{ } else {
logrec = await logrec.filter(({ to }) => to === req.session.user) logrec = await logrec.filter(({ to }) => to === req.session.user);
} }
for( i in logrec){ for (i in logrec) {
let d = new Date(logrec[i].time) let d = new Date(logrec[i].time);
logrec[i].time = d logrec[i].time = d;
} }
for( i in logsent){ for (i in logsent) {
let d = new Date(logsent[i].time) let d = new Date(logsent[i].time);
logsent[i].time = d logsent[i].time = d;
} }
res.render("bankf",{ res.render("bankf", {
logsent: logsent,
logsent:logsent, logrec: logrec,
logrec:logrec, errors: errors,
errors:errors,
successes: successes, successes: successes,
balance:balance.value, balance: balance.value,
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} }
}) });
app.post('/register', async function(req, res){ app.post("/register", async function (req, res) {
var {name, password, password2} = req.body; var { name, password, password2 } = req.body;
let checkuser = await got(process.env.BANKAPIURL+'BankF/contains/'+name) let checkuser = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
checkuser = JSON.parse(checkuser.body).value checkuser = JSON.parse(checkuser.body).value;
let errors = []; let errors = [];
let successes = []; let successes = [];
if(checkuser == false){ if (checkuser == false) {
if(!name || !password || !password2) { if (!name || !password || !password2) {
errors.push({msg : "please fill in all fields"}); errors.push({ msg: "please fill in all fields" });
} }
if(password !== password2) { if (password !== password2) {
errors.push({msg : "Passwords don't match"}); errors.push({ msg: "Passwords don't match" });
} }
if(password.length < 6 ) { if (password.length < 6) {
errors.push({msg : 'Password must be at least 6 characters'}) errors.push({ msg: "Password must be at least 6 characters" });
} }
if(errors[0]){ if (errors[0]) {
res.render('register', { res.render("register", {
errors:errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} else { } else {
if(postUser(name, password)){ if (postUser(name, password)) {
successes.push({msg:"User Registered Please Log In"}) successes.push({ msg: "User Registered Please Log In" });
res.render('login',{ res.render("login", {
errors:errors, errors: errors,
successes: successes, successes: successes,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} }
} }
} else { } else {
errors.push({msg: "User already exists"}) errors.push({ msg: "User already exists" });
res.render('register',{ res.render("register", {
errors:errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} }
}) });
app.post('/login', async function(req, res){ app.post("/login", async function (req, res) {
if(req.session.user){ if (req.session.user) {
res.redirect("/") res.redirect("/");
} }
let {name,password} = req.body let { name, password } = req.body;
let adminTest; let adminTest;
let errors = []; let errors = [];
try{ try {
adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", {
json:{ json: {
attempt: password, attempt: password,
}, },
responseType:'json' responseType: "json",
}) });
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
req.session.password = password req.session.password = password;
if(adminTest.body.value == undefined){ if (adminTest.body.value == undefined) {
res.redirect('/') res.redirect("/");
}else{ } else {
req.session.admin = adminTest.body.value req.session.admin = adminTest.body.value;
req.session.adminp = password req.session.adminp = password;
let verified let verified;
try{ try {
verified = await got.post(process.env.BANKAPIURL+'BankF/vpass', { verified = await got.post(process.env.BANKAPIURL + "BankF/vpass", {
json:{ json: {
name: name, name: name,
attempt: password attempt: password,
}, },
responseType:'json' responseType: "json",
});
}) } catch (err) {
console.log(err);
} catch(err){
console.log(err)
} finally { } finally {
console.log(verified.body.value) console.log(verified.body.value);
if(verified.body.value == 0){ if (verified.body.value == 0) {
errors.push({msg: 'Password wrong'}) errors.push({ msg: "Password wrong" });
res.render('login',{ res.render("login", {
errors:errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}else if(verified.body.value == 1){ } else if (verified.body.value == 1) {
req.session.user = name; req.session.user = name;
req.session.password = password req.session.password = password;
res.redirect('/BankF') res.redirect("/BankF");
} else { } else {
errors.push({msg: 'User not found'}) errors.push({ msg: "User not found" });
res.render('login',{ res.render("login", {
errors:errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} }
} }
} }
//res.redirect('/login') //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){ let settings = require("./routes/settings");
req.session.regenerate(function(err) { app.use("/settings", settings);
res.render('login', {
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, user: req.session.user,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
}); });
app.get('/register', function(req, res){ app.get("/register", function (req, res) {
res.render('register', { res.render("register", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, 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...');
}); });

View file

@ -1,268 +1,285 @@
const express = require('express'); const express = require("express");
const router = express.Router(); const router = express.Router();
const path = require('path'); const path = require("path");
const {ensureAuthenticated} = require("../config/auth.js") const { ensureAuthenticated } = require("../config/auth.js");
const {checkAdmin} = require ("../config/admin.js") const { checkAdmin } = require("../config/admin.js");
const pug = require('pug'); const pug = require("pug");
const flash = require ('connect-flash'); const flash = require("connect-flash");
const expressValidator = require('express-validator'); const expressValidator = require("express-validator");
const session = require('express-session'); const session = require("express-session");
const {postUser} = require('../helpers/functions.js') const { postUser } = require("../helpers/functions.js");
const got = require('got') const got = require("got");
const MemoryStore = require('memorystore')(session) const MemoryStore = require("memorystore")(session);
const fs = require('fs'); const fs = require("fs");
const mongoose = require('mongoose') const mongoose = require("mongoose");
console.log('Sen was here') 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, useNewUrlParser: true,
useUnifiedTopology: true, useUnifiedTopology: true,
useFindAndModify: true, useFindAndModify: true,
}); });
let db = mongoose.connection; let db = mongoose.connection;
db.once('open', function(){ db.once("open", function () {
console.log('Connected to MongoDB'); console.log("Connected to MongoDB");
}) });
//check for DB errors //check for DB errors
db.on('error', function(err){ db.on("error", function (err) {
console.log(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, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}); });
router.post("/user", checkAdmin, async function (req, res) {
router.post('/user',checkAdmin , async function(req,res){ let { name, init_pass, init_bal, password2 } = req.body;
let {name, init_pass, init_bal, password2} = req.body let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name) contains = JSON.parse(contains.body).value;
contains = JSON.parse(contains.body).value
let errors = []; let errors = [];
let successes = []; let successes = [];
if(contains == true){ if (contains == true) {
errors.push({msg: 'User already exists'}) errors.push({ msg: "User already exists" });
res.render('adminsettings',{ res.render("adminsettings", {
errors:errors errors: errors,
}) });
}else { } else {
if(!name || !init_pass || !init_bal || !password2) { if (!name || !init_pass || !init_bal || !password2) {
errors.push({msg : "please fill in all fields"}); errors.push({ msg: "please fill in all fields" });
} }
//check if match //check if match
if(init_pass !== password2) { if (init_pass !== password2) {
errors.push({msg : "Passwords don't match"}); errors.push({ msg: "Passwords don't match" });
} }
//check if password is more than 6 characters //check if password is more than 6 characters
if(init_pass.length < 6 ) { if (init_pass.length < 6) {
errors.push({msg : 'Password must be at least 6 characters'}) errors.push({ msg: "Password must be at least 6 characters" });
} }
let post; let post;
let successes = []; let successes = [];
try{ try {
post = await got.post(process.env.BANKAPIURL+'BankF/admin/user',{ post = await got.post(process.env.BANKAPIURL + "BankF/admin/user", {
json:{ json: {
name: name, name: name,
attempt: req.session.adminp, attempt: req.session.adminp,
init_bal: parseInt(init_bal), init_bal: parseInt(init_bal),
init_pass: init_pass, init_pass: init_pass,
}, },
responseType:'json' responseType: "json",
}) });
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
if(post.body.value == true){ if (post.body.value == true) {
successes.push({msg: "Account Creation Successful"}) successes.push({ msg: "Account Creation Successful" });
} }
} }
res.render('adminsettings',{ res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
successes: successes, successes: successes,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
router.post("/baluser", checkAdmin, async function (req, res) {
router.post('/baluser',checkAdmin , async function(req,res){ let { name } = req.body;
let {name} = req.body
let balance; let balance;
let successes = []; let successes = [];
let errors = []; let errors = [];
try{ try {
balance = await got(process.env.BANKAPIURL+'BankF/'+name+'/bal') balance = await got(process.env.BANKAPIURL + "BankF/" + name + "/bal");
balance = JSON.parse(balance.body) balance = JSON.parse(balance.body);
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
if(balance.value == -1 || balance.value == undefined){ if (balance.value == -1 || balance.value == undefined) {
errors.push({msg: "User not found"}) errors.push({ msg: "User not found" });
}else{ } else {
successes.push({msg: "User: "+name+" has "+balance.value+" monies"}) successes.push({
msg: "User: " + name + " has " + balance.value + " monies",
});
} }
res.render('adminsettings',{ res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
successes: successes, successes: successes,
errors: errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
router.post("/bal", checkAdmin, async function (req, res) {
router.post('/bal',checkAdmin , async function(req,res){ let { name, amount } = req.body;
let {name, amount} = req.body
let patch; let patch;
let successes = []; let successes = [];
try{ try {
patch = await got.patch(process.env.BANKAPIURL+'BankF/admin/'+name+'/bal',{ patch = await got.patch(
json:{ process.env.BANKAPIURL + "BankF/admin/" + name + "/bal",
name: name, {
attempt: req.session.adminp, json: {
amount: parseInt(amount), name: name,
}, attempt: req.session.adminp,
responseType:'json' amount: parseInt(amount),
}) },
} catch(err){ responseType: "json",
console.log(err) }
);
} catch (err) {
console.log(err);
} }
if(patch.body.value == true){ if (patch.body.value == true) {
successes.push({msg: "Change Funds Successful"}) successes.push({ msg: "Change Funds Successful" });
} }
res.render('adminsettings',{ res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
successes: successes, successes: successes,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
router.post('/userdelete', checkAdmin, async function(req,res){ router.post("/userdelete", checkAdmin, async function (req, res) {
let {name, attempt} = req.body let { name, attempt } = req.body;
console.log(name) console.log(name);
let contains = await got(process.env.BANKAPIURL+'BankF/contains/'+name) let contains = await got(process.env.BANKAPIURL + "BankF/contains/" + name);
contains = JSON.parse(contains.body).value contains = JSON.parse(contains.body).value;
let deleteUser; let deleteUser;
let successes = []; let successes = [];
let errors = []; let errors = [];
if(attempt != req.session.adminp){ if (attempt != req.session.adminp) {
errors.push({msg:"Wrong Admin Password"}) errors.push({ msg: "Wrong Admin Password" });
} }
console.log(contains) console.log(contains);
if(contains == true){ if (contains == true) {
deleteUser = got.delete(process.env.BANKAPIURL+'BankF/admin/user',{ deleteUser = got.delete(process.env.BANKAPIURL + "BankF/admin/user", {
json:{ json: {
name: name, name: name,
attempt: attempt, attempt: attempt,
}, },
responseType:'json' responseType: "json",
}) });
successes.push({msg: "User Deletion Successful"}) successes.push({ msg: "User Deletion Successful" });
} else{ } else {
errors.push({msg: "User Deletion Failed, User Not Found"}) errors.push({ msg: "User Deletion Failed, User Not Found" });
} }
res.render('adminsettings',{ res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
successes: successes, successes: successes,
errors: errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
router.post('/destroyallsessions', checkAdmin, async function(req,res) { router.post("/destroyallsessions", checkAdmin, async function (req, res) {
let {attempt} = req.body; let { attempt } = req.body;
let adminTest let adminTest;
let errors = [] let errors = [];
try{ try {
adminTest = await got.post(process.env.BANKAPIURL+'BankF/admin/vpass',{ adminTest = await got.post(process.env.BANKAPIURL + "BankF/admin/vpass", {
json:{ json: {
attempt: attempt, attempt: attempt,
}, },
responseType:'json' responseType: "json",
}) });
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
console.log(adminTest.body.value) console.log(adminTest.body.value);
if(adminTest){ if (adminTest) {
req.sessionStore.clear(function(err){ req.sessionStore.clear(function (err) {
console.log(err) console.log(err);
}) });
res.redirect('/') res.redirect("/");
}else{ } else {
errors.push({msg: "failed admin password check"}) errors.push({ msg: "failed admin password check" });
res.render("adminsettings",{ res.render("adminsettings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
errors: errors, 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);
} }
}) res.redirect("../");
});
router.post("/close", checkAdmin, async function (req, res) {
let { attempt } = req.body;
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;
let close; let close;
close = got.post(process.env.BANKAPIURL+'BankF/admin/close', { close = got.post(process.env.BANKAPIURL + "BankF/admin/close", {
json:{ json: {
attempt: attempt, attempt: attempt,
}, },
responseType:'json' responseType: "json",
}) });
res.redirect('../') res.redirect("../");
}) });
module.exports = router; module.exports = router;

View file

@ -1,224 +1,213 @@
const express = require('express') const express = require("express");
const router = express.Router() const router = express.Router();
const bodyParser = require('body-parser') const bodyParser = require("body-parser");
const session = require('express-session'); const session = require("express-session");
const mongoose = require('mongoose') const mongoose = require("mongoose");
const dotenv = require('dotenv'); const dotenv = require("dotenv");
const got = require('got'); const got = require("got");
const {ensureAuthenticated} = require("../config/auth.js") const { ensureAuthenticated } = require("../config/auth.js");
let db let db;
function mongo() {
if (process.env.MONGO) {
function mongo(){ console.log(process.env.MONGO);
if(process.env.MONGO){ mongoose.connect(process.env.MONGO, {
console.log(process.env.MONGO)
mongoose.connect(process.env.MONGO,{
useNewUrlParser: true, useNewUrlParser: true,
useUnifiedTopology: true, useUnifiedTopology: true,
useFindAndModify: true, useFindAndModify: true,
}); });
let db = mongoose.connection; let db = mongoose.connection;
db.once('open', function(){ db.once("open", function () {
console.log('Connected to MongoDB'); console.log("Connected to MongoDB");
}) });
//check for DB errors //check for DB errors
db.on('error', function(err){ db.on("error", function (err) {
console.log(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') router.all("*", function (req, res, next) {
let Listing = require('../schemas/listing') console.log(req.method, req.url);
let Inventory = require('../schemas/inventory') next();
router.all('*', function(req, res, next) {
console.log(req.method, req.url);
next();
}); });
router.get('/', function(req, res) { router.get("/", function (req, res) {
let columns = [0,1,2,3] let columns = [0, 1, 2, 3];
Item.find({}, function(err, items){ Item.find({}, function (err, items) {
if(err){ if (err) {
console.log(err); console.log(err);
} else { } else {
res.render('marketplace', { res.render("marketplace", {
columns:columns, columns: columns,
items: items, items: items,
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}); });
} }
}) });
}); });
router.get("/marketdash", ensureAuthenticated, function (req, res) {
router.get('/marketdash', ensureAuthenticated, function(req,res){ Inventory.findOne({ user: req.session.user }, async function (
Inventory.findOne({user:req.session.user}, async function(err, inventory){ err,
if(!inventory){ inventory
let newinv = new Inventory; ) {
newinv.user = req.session.user if (!inventory) {
newinv.save(function(err){ let newinv = new Inventory();
if(err){ newinv.user = req.session.user;
newinv.save(function (err) {
if (err) {
console.log(err); console.log(err);
return; return;
} else{ } else {
console.log("created new inventory for "+req.session.user) console.log("created new inventory for " + req.session.user);
} }
}) });
} }
res.render('marketdash',{ res.render("marketdash", {
user:req.session.user, user: req.session.user,
admin:req.session.admin, admin: req.session.admin,
inventory:inventory, inventory: inventory,
marketplace: process.env.MARKETPLACE 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);
}) res.render("item", {
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', {
listings: listings, listings: listings,
user:req.session.user, user: req.session.user,
admin:req.session.admin, admin: req.session.admin,
item:item, item: item,
marketplace: process.env.MARKETPLACE 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)
router.get("/:id/list", ensureAuthenticated, function (req, res) {
res.render('itembuy', { Item.findById(req.params.id, function (err, item) {
listings:listings, res.render("itemlist", {
user:req.session.user, user: req.session.user,
admin:req.session.admin, admin: req.session.admin,
marketplace: process.env.MARKETPLACE 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(); let listing = new Listing();
listing.itemId = item.itemId listing.itemId = item.itemId;
listing.meta = item.meta listing.meta = item.meta;
listing.name = item.name listing.name = item.name;
listing.foreignid = item._id listing.foreignid = item._id;
listing.price = body.price listing.price = body.price;
listing.amount = body.amount listing.amount = body.amount;
listing.seller = req.session.user listing.seller = req.session.user;
listing.save(function(err){ listing.save(function (err) {
if(err){ if (err) {
console.log(err); console.log(err);
return; 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 { } else {
inventory.purchases.push(listing) console.log("added " + listing.name + " from " + listing.seller);
inventory.save(function(err){ }
if(err){ });
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); console.log(err);
return; return;
} else{ } else {
console.log("pushed new purchase") 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() Listing.findOneAndRemove({ _id: req.params.id }).exec();
transfer = got.post(process.env.BANKAPIURL+'BankF/sendfunds',{ transfer = got.post(process.env.BANKAPIURL + "BankF/sendfunds", {
json:{ json: {
a_name: req.session.user, a_name: req.session.user,
b_name: listing.seller, b_name: listing.seller,
amount: parseInt(listing.amount*listing.price), amount: parseInt(listing.amount * listing.price),
attempt: req.session.password attempt: req.session.password,
}, },
responseType:'json' responseType: "json",
}) });
res.redirect("/marketplace/marketdash") res.redirect("/marketplace/marketdash");
}) });
}) });
// this thingy here populates the database with minecraft items only use once otherwise you are gonna flood your database // 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){ /*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

View file

@ -1,75 +1,70 @@
const express = require('express'); const express = require("express");
const router = express.Router(); const router = express.Router();
const path = require('path'); const path = require("path");
const {ensureAuthenticated} = require("../config/auth.js") const { ensureAuthenticated } = require("../config/auth.js");
const {checkAdmin} = require ("../config/admin.js") const { checkAdmin } = require("../config/admin.js");
var pug = require('pug'); var pug = require("pug");
const flash = require ('connect-flash'); const flash = require("connect-flash");
const expressValidator = require('express-validator'); const expressValidator = require("express-validator");
const session = require('express-session'); const session = require("express-session");
const {postUser} = require('../helpers/functions.js') const { postUser } = require("../helpers/functions.js");
const got = require('got') const got = require("got");
router.get('/',ensureAuthenticated , function(req, res){ router.get("/", ensureAuthenticated, function (req, res) {
res.render('settings', { res.render("settings", {
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
}) });
}); });
router.post('/pass', ensureAuthenticated, async function(req, res){ router.post("/pass", ensureAuthenticated, async function (req, res) {
let {attempt, new_pass, password2} = req.body let { attempt, new_pass, password2 } = req.body;
let patch; let patch;
let successes = []; let successes = [];
let errors = []; let errors = [];
if(!attempt || !new_pass || !password2) { if (!attempt || !new_pass || !password2) {
errors.push({msg : "please fill in all fields"}); errors.push({ msg: "please fill in all fields" });
} }
//check if match //check if match
if(new_pass !== password2) { if (new_pass !== password2) {
errors.push({msg : "Passwords don't match"}); errors.push({ msg: "Passwords don't match" });
} }
//check if password is more than 6 characters //check if password is more than 6 characters
if(new_pass.length < 6 ) { if (new_pass.length < 6) {
errors.push({msg : 'Password must be at least 6 characters'}) errors.push({ msg: "Password must be at least 6 characters" });
} }
if(errors[0]){ if (errors[0]) {
res.render('settings', { res.render("settings", {
errors:errors, errors: errors,
user: req.session.user, user: req.session.user,
admin: req.session.admin, admin: req.session.admin,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
} }
try{ try {
patch = await got.patch('https://ccash.ryzerth.com/BankF/changepass',{ patch = await got.patch("https://ccash.ryzerth.com/BankF/changepass", {
json:{ json: {
name: req.session.user, name: req.session.user,
attempt: attempt, attempt: attempt,
new_pass: new_pass, new_pass: new_pass,
}, },
responseType:'json' responseType: "json",
}) });
} catch(err){ } catch (err) {
console.log(err) console.log(err);
} }
console.log(patch) console.log(patch);
if(patch.body.value == true){ if (patch.body.value == true) {
successes.push({msg: "Change Password Successful, Please Login Again"}) successes.push({ msg: "Change Password Successful, Please Login Again" });
} }
req.session.regenerate(function(err) { req.session.regenerate(function (err) {
res.render('login', { res.render("login", {
successes: successes, successes: successes,
errors:errors, errors: errors,
marketplace: process.env.MARKETPLACE marketplace: process.env.MARKETPLACE,
}) });
}) });
}) });
module.exports = router; module.exports = router;

View file

@ -1,72 +1,78 @@
const mongoose = require('mongoose'); const mongoose = require("mongoose");
const Listing = require("./listing.js") const Listing = require("./listing.js");
const InventorySchema = mongoose.Schema({ const InventorySchema = mongoose.Schema({
user:{ user: {
type: String, type: String,
required: true, required: true,
}, },
listings:[{ listings: [
itemId:{ {
type: Number, itemId: {
required: true, 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, purchases: [
required: false {
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
));

View file

@ -1,27 +1,26 @@
const mongoose = require('mongoose'); const mongoose = require("mongoose");
const ItemSchema = mongoose.Schema({ const ItemSchema = mongoose.Schema({
itemId:{ itemId: {
type: Number, type: Number,
required: true, required: true,
}, },
meta:{ meta: {
type: Number, type: Number,
required: false required: false,
}, },
name:{ name: {
type: String,
required: true
},
text_type:{
type: String, type: String,
required: true, required: true,
}, },
price:{ text_type: {
type:Number, type: String,
required: false required: true,
} },
}) price: {
type: Number,
required: false,
},
});
const Item = module.exports = mongoose.model('Item', ItemSchema); const Item = (module.exports = mongoose.model("Item", ItemSchema));

View file

@ -1,35 +1,34 @@
const mongoose = require('mongoose'); const mongoose = require("mongoose");
const ListingSchema = mongoose.Schema({ const ListingSchema = mongoose.Schema({
itemId:{ itemId: {
type: Number, type: Number,
required: true, required: true,
}, },
meta:{ meta: {
type: Number, type: Number,
required: false required: false,
}, },
name:{ name: {
type: String,
required: true
},
foreignid:{
type: String, type: String,
required: true, required: true,
}, },
price:{ foreignid: {
type:Number, type: String,
required: true required: true,
}, },
amount:{ price: {
type: Number, type: Number,
required:true required: true,
}, },
seller:{ amount: {
type:String, type: Number,
required:true, required: true,
} },
}) seller: {
type: String,
required: true,
},
});
const Listing = module.exports = mongoose.model('Listing', ListingSchema); const Listing = (module.exports = mongoose.model("Listing", ListingSchema));

View file

@ -1,24 +1,23 @@
const mongoose = require('mongoose'); const mongoose = require("mongoose");
const LogSchema = mongoose.Schema({ const LogSchema = mongoose.Schema({
sender:{ sender: {
type: String, type: String,
required: true, required: true,
}, },
receiver:{ receiver: {
type: String, type: String,
required: true required: true,
}, },
amount:{ amount: {
type: Number, type: Number,
required: true required: true,
}, },
date:{ date: {
type:Date, type: Date,
default: Date(), default: Date(),
required: true required: true,
} },
}) });
const Log = module.exports = mongoose.model('Log', LogSchema); const Log = (module.exports = mongoose.model("Log", LogSchema));