diff --git a/index.js b/index.js index effd1e9..217af53 100644 --- a/index.js +++ b/index.js @@ -80,59 +80,6 @@ app.use( }, }) ); -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 + "/"; - } - 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" - ); - dotenv.config(); - 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"); - }); - - //check for DB errors - db.on("error", function (err) { - console.log(err); - }); - } - res.redirect("/"); -}); function papy() { const rndInt = Math.floor(Math.random() * 1337); @@ -144,32 +91,27 @@ function papy() { } app.get("/", async function (req, res) { - if (!process.env.SETUP) { - res.render("setup"); - } else { - let checkalive; - try { - checkalive = await client.help(); - } catch (err) { - console.log(err); - } - let alive = false; - try { - if (checkalive) { - alive = true; - } - } catch (err) { - console.log(err); - } - - res.render("index", { - user: req.session.user, - admin: req.session.admin, - alive: alive, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); + let checkalive; + try { + checkalive = await client.help(); + } catch (err) { + console.log(err); } + let alive = false; + try { + if (checkalive) { + alive = true; + } + } catch (err) { + console.log(err); + } + + res.render("index", { + user: req.session.user, + admin: req.session.admin, + alive: alive, + random: papy(), + }); }); app.get("/BankF", ensureAuthenticated, async function (req, res) { let successes = req.session.successes; @@ -259,7 +201,6 @@ app.get("/BankF", ensureAuthenticated, async function (req, res) { admin: req.session.admin, sucesses: successes, errors: errors, - marketplace: process.env.MARKETPLACE, random: papy(), }); }); @@ -375,13 +316,9 @@ 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, random: papy(), }); }); @@ -395,7 +332,6 @@ app.get("/login", function (req, res) { successes: successes, errors: errors, user: req.session.user, - marketplace: process.env.MARKETPLACE, random: papy(), }); }); @@ -411,7 +347,6 @@ app.get("/register", function (req, res) { successes: successes, user: req.session.user, admin: req.session.admin, - marketplace: process.env.MARKETPLACE, random: papy(), }); }); diff --git a/routes/admin.js b/routes/admin.js index f87554c..3459cce 100644 --- a/routes/admin.js +++ b/routes/admin.js @@ -206,40 +206,7 @@ router.post("/changebackend", checkAdmin, async function (req, res) { ); 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; diff --git a/routes/marketplace.js b/routes/marketplace.js deleted file mode 100644 index ebc4ea9..0000000 --- a/routes/marketplace.js +++ /dev/null @@ -1,246 +0,0 @@ -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, { - useNewUrlParser: true, - useUnifiedTopology: true, - useFindAndModify: true, - }); - - let db = mongoose.connection; - db.once("open", function () { - console.log("Connected to MongoDB"); - }); - - //check for DB errors - db.on("error", function (err) { - console.log(err); - }); - } -} - -mongo(); - -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.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, - items: items, - user: req.session.user, - admin: req.session.admin, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); - } - }); -}); - -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); - } - }); - } - - res.render("marketdash", { - user: req.session.user, - admin: req.session.admin, - inventory: inventory, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); - }); -}); - -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, - user: req.session.user, - admin: req.session.admin, - item: item, - marketplace: process.env.MARKETPLACE, - random: papy(), - }); - }); - }); -}); - -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); - 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) { - 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(err); - return; - } else { - console.log("pushed new purchase"); - } - }); - } - 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, - }, - 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){ - let response = await got('http://minecraft-ids.grahamedgecombe.com/items.json') - let json = JSON.parse(response.body) - console.log(json[1].name) - for(i in json){ - let item = new Item(); - item.name = json[i].name - item.meta = json[i].meta - item.itemId = json[i].type - item.text_type = json[i].text_type - item.save(function(err){ - if(err){ - console.log(err); - return; - } else{ - console.log("added "+ json[i].name) - } - }) - } -})*/ - -function papy() { - const rndInt = Math.floor(Math.random() * 1337); - let random = false; - if (rndInt == 420) { - random = true; - } - return random; -} - -module.exports = router; diff --git a/views/adminsettings.pug b/views/adminsettings.pug index 301d33b..1c9be2a 100644 --- a/views/adminsettings.pug +++ b/views/adminsettings.pug @@ -68,16 +68,6 @@ block content br input.btn.btn-warning(type='submit',value='Submit') br - .card.shadow-lg - h4 Change backend Mongodb URL - form(method='POST', action='/admin/mongodb') - #form-group - p WARNING DO NOT PUT WRONG URL IN YOU WILL BREAK AND HAVE TO DELETE .ENV FILE TO FIX - label Enter URL of new MongoDB or enter a space to turn off marketplace - input.form-control(name='url', type='text') - br - input.btn.btn-warning(type='submit',value='Submit') - br .card.shadow-lg h4 Destroy All Sessions form(method='POST', action='/admin/destroyallsessions') diff --git a/views/item.pug b/views/item.pug deleted file mode 100644 index 015e385..0000000 --- a/views/item.pug +++ /dev/null @@ -1,39 +0,0 @@ -extends marketlayout - -block content - .container - .card - .row - .col - .card - img(src="/blockimages/items/"+item.itemId+"-"+item.meta+".png") - .col - center - .row - .col - - p Item: - p ID: - .col - p #{item.name} - p #{item.itemId}-#{item.meta} - .col - .row - .col - center - h4 Buy - .col - center - h4 Sell - .row - .col-xs - - .col-xs - - .col - center - a.btn.btn-primary(href="/marketplace/"+item._id+"/buy") Buy - .col - center - a.btn.btn-primary(href="/marketplace/"+item._id+"/list") List - diff --git a/views/itembuy.pug b/views/itembuy.pug deleted file mode 100644 index bb92eba..0000000 --- a/views/itembuy.pug +++ /dev/null @@ -1,41 +0,0 @@ -extends marketlayout - -block content - .container - .card - .row - .col - .card - img(src="/blockimages/items/"+listings[0].itemId+"-"+listings[0].meta+".png") - .col - .row - .col-sm-2 - p Item: - p ID: - .col-sm-4 - p #{listings[0].name} - p #{listings[0].itemId}-#{listings[0].meta} - .col - h4 Buy - .row - .col - p Seller - .col - p Price - .col - p Amount - .col - p Link - for i in listings - .row - .col - p #{i.seller} - .col - p #{i.price} - .col - p #{i.amount} - .col - form(method='POST', action='/marketplace/'+i._id+"/buy") - input(type="hidden" value=i name="listing") - input.btn.btn-primary.btn-sm(type='submit', value='Buy') - diff --git a/views/itemlist.pug b/views/itemlist.pug deleted file mode 100644 index 0cefea0..0000000 --- a/views/itemlist.pug +++ /dev/null @@ -1,33 +0,0 @@ -extends marketlayout - - -block content - .container - .card - .row - .col - .card - img(src="/blockimages/items/"+item.itemId+"-"+item.meta+".png") - .col - .row - .col-sm-2 - p Item: - p ID: - .col-sm-2 - p #{item.name} - p #{item.itemId}-#{item.meta} - .col - h4 Sell - form(method='POST', action='/marketplace/'+item._id+'/list') - label Selling Price: - br - input.form-control-lg.shadow(type="number" min="0" name="price") - br - br - label Amount: - br - input.form-control-lg.shadow(type="number" min="0" name="amount") - br - br - input(type="hidden" value=item name="item") - input.btn.btn-primary(type='submit', value='Submit') diff --git a/views/layout.pug b/views/layout.pug index e5bde85..df647ae 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -32,11 +32,6 @@ html a.nav-link(href='/logout').text-white Log out li.nav-item a.nav-link(href='/BankF').text-white Bank - if marketplace - li.nav-item - a.nav-link(href='/marketplace').text-white MarketPlace - li.nav-item - a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard li.nav-item a.nav-link(href='/settings').text-white Settings if admin == true diff --git a/views/listings.pug b/views/listings.pug deleted file mode 100644 index 5fc1b4e..0000000 --- a/views/listings.pug +++ /dev/null @@ -1,4 +0,0 @@ -extends marketlayout - -block content - diff --git a/views/marketdash.pug b/views/marketdash.pug deleted file mode 100644 index 3237dc1..0000000 --- a/views/marketdash.pug +++ /dev/null @@ -1,63 +0,0 @@ -extends layout - -block content - .container - h2 Welcome to the marketplace dashboard #{inventory.user} - .card - ul#market.nav.nav-tabs.card-header-tabs(role='tablist') - li.nav-item - a.nav-link.active.text-black(href='#purchases', role='tab', aria-controls='purchases', aria-selected='true') Purchases - li.nav-item - a.nav-link.text-black(href='#selling', role='tab', aria-controls='selling', aria-selected='false') Selling - .tab-content.mt-3 - #purchases.tab-pane.active(role='tabpanel' aria-labelledby='purchases-tab') - .row - .col - p itemID - .col - p Item Name - .col - p Price - .col - p Amount - .col - p Seller - - for i in inventory.purchases - .row - .col - p #{i.itemId}-#{i.meta} - .col - p #{i.name} - .col - p #{i.price} - .col - p #{i.amount} - .col - p #{i.seller} - #selling.tab-pane(role='tabpanel', aria-labelledby='selling-tab') - .row - .col - p itemID - .col - p Item Name - .col - p Price - .col - p Amount - .col - p Seller - - for i in inventory.listings - .row - .col - p #{i.itemId}-#{i.meta} - .col - p #{i.name} - .col - p #{i.price} - .col - p #{i.amount} - .col - p #{i.seller} - diff --git a/views/marketlayout.pug b/views/marketlayout.pug deleted file mode 100644 index d926671..0000000 --- a/views/marketlayout.pug +++ /dev/null @@ -1,60 +0,0 @@ -doctype html -html - head - title CCashBank - link(rel="stylesheet", href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css", integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z", crossorigin="anonymous") - link(rel="preconnect" href="https://fonts.gstatic.com") - link(href="https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&display=swap" rel="stylesheet") - link(rel='stylesheet' href='/css/style.css') - meta(name='viewport', content='width=device-width, initial-scale=1.0') - body - nav.navbar.navbar-expand-lg.navbar-dark.navbarrr.shadow-lg - .container - a.navbar-brand(href='/') - img(src="/CCashLogo3.png" style="width:75px; height:74px") - button.navbar-toggler(type='button', data-toggle='collapse', data-target='#navbars', aria-controls='navbars', aria-expanded='false', aria-label='Toggle navigation') - span.navbar-toggler-icon - #navbars.collapse.navbar-collapse - ul.navbar-nav.mr-auto - - ul.navbar-nav.mr-right.text-white - if user == undefined - li.nav-item - a.nav-link(href='/login').text-white Login - li.nav-item - a.nav-link(href='/register').text-white Register - li.nav-item - a.nav-link(href='/marketplace').text-white MarketPlace - if user - li.nav-item - a.nav-link(href='/logout').text-white Log out - li.nav-item - a.nav-link(href='/BankF').text-white Bank - if marketplace == true - li.nav-item - a.nav-link(href='/marketplace').text-white MarketPlace - li.nav-item - a.nav-link(href='/marketplace/marketdash').text-white MarketPlace-Dashboard - li.nav-item - a.nav-link(href='/settings').text-white Settings - if admin == true - li.nav-item - a.nav-link(href='/admin').text-white Admin - .container - != messages('message', locals) - if errors - each error, i in errors - div(class="alert alert-danger") #{error.msg} - if successes - each success, i in successes - div(class="alert alert-success") #{success.msg} - br - br - block content - br - hr - - script(src="https://code.jquery.com/jquery-3.6.0.slim.min.js" integrity="sha256-u7e5khyithlIdTpu22PHhENmPcRdFiHRjhAuHcs05RI=" - crossorigin="anonymous") - script(src='/js/main.js') - script(src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js", integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV", crossorigin="anonymous") diff --git a/views/marketplace.pug b/views/marketplace.pug deleted file mode 100644 index 743929d..0000000 --- a/views/marketplace.pug +++ /dev/null @@ -1,12 +0,0 @@ -extends marketlayout - -block content - .container - .row - each item in items - .col.col-xs-12 - a(href="/marketplace/"+item._id) - .card(style="height: 130px;width:140px;margin:10px") - p #{item.name} - img(src="/blockimages/items/"+item.itemId+"-"+item.meta+".png") - br