109 lines
3.4 KiB
JavaScript
109 lines
3.4 KiB
JavaScript
|
// Forces NodeJS to disable "Silent errors"
|
||
|
'use strict';
|
||
|
|
||
|
// Import things
|
||
|
const express = require('express');
|
||
|
const app = express();
|
||
|
const server = require('http').createServer(app);
|
||
|
const port = process.env.PORT || 3430;
|
||
|
const test = require('../testdatabase.json');
|
||
|
const bodyParser = require("body-parser");
|
||
|
var mysql = require('mysql');
|
||
|
|
||
|
var site;
|
||
|
// TODO: Add stuff for MySQL
|
||
|
|
||
|
var connection = mysql.createConnection({
|
||
|
host : '127.0.0.1',
|
||
|
user : 'demo',
|
||
|
password : 'lqklvok',
|
||
|
database : 'mangoshelfdb'
|
||
|
});
|
||
|
|
||
|
|
||
|
connection.query('SELECT * FROM stock', function (error, results, fields) {
|
||
|
if (error) throw error;
|
||
|
// connected!
|
||
|
console.log('MySQL connected!');
|
||
|
});
|
||
|
|
||
|
// Set the templates folder for the thingy
|
||
|
app.set('views', __dirname + '/../Templates');
|
||
|
app.set('view engine', 'ejs');
|
||
|
app.use(bodyParser.urlencoded({ extended: false }));
|
||
|
app.use(bodyParser.json());
|
||
|
|
||
|
// Makes it so that the Public folder mounts under /
|
||
|
app.use(express.static(__dirname + '/../Public'));
|
||
|
|
||
|
// Main page
|
||
|
app.get('/', function(req, res){
|
||
|
res.redirect('/stock')
|
||
|
// console.log(test.cars.Nissan[1].model)
|
||
|
});
|
||
|
|
||
|
app.get('/stock', function(req, res){
|
||
|
console.log('🌐 Client requested ' + req.url);
|
||
|
connection.query('SELECT * FROM stock', function (error, results, fields) {
|
||
|
if (error) throw error;
|
||
|
// connected!
|
||
|
//console.log(results);
|
||
|
res.render('index', { results, site: 2 });
|
||
|
console.log('✅ Client recieved ' + req.url);
|
||
|
});
|
||
|
// console.log(test.cars.Nissan[1].model)
|
||
|
});
|
||
|
app.get('/stock/new', function(req, res){
|
||
|
var results = null;
|
||
|
console.log('🌐 Client requested ' + req.url);
|
||
|
res.render('index', { results, site: 21 });
|
||
|
// console.log(test.cars.Nissan[1].model)
|
||
|
});
|
||
|
|
||
|
app.post('/api/live/inventory/add', function(req, res){
|
||
|
let name = req.body.name;
|
||
|
let desc = req.body.desc;
|
||
|
let status = req.body.status;
|
||
|
let category = req.body.category;
|
||
|
let amount = req.body.amount;
|
||
|
let location = req.body.location;
|
||
|
let orderid = req.body.orderid;
|
||
|
let notes = req.body.notes;
|
||
|
console.log('🌐 Client requested ' + req.url + ' with id ' + req.params.id);
|
||
|
console.log('✅ Client recieved ' + req.url);
|
||
|
|
||
|
var sql = "INSERT INTO stock (name, description, status, category, amount, location, orderid, notes) VALUES (?)";
|
||
|
var values = [name, desc, status, category, amount, location, orderid, notes];
|
||
|
connection.query(sql, [values], function (err, result) {
|
||
|
if (err) throw err;
|
||
|
console.log("Number of records inserted: " + result.affectedRows);
|
||
|
res.redirect('/stock');
|
||
|
});
|
||
|
if (name && desc && status && category && amount && location && orderid && notes) {
|
||
|
console.log('boop!');
|
||
|
}
|
||
|
// console.log(test.cars.Nissan[1].model)
|
||
|
});
|
||
|
|
||
|
app.get('/api/live/inventory/delete/:thinGid', function(req, res){
|
||
|
var idtodelete = req.params.thinGid;
|
||
|
console.log(idtodelete);
|
||
|
var sql = "DELETE FROM stock WHERE id = ?";
|
||
|
var values = [idtodelete];
|
||
|
connection.query(sql, [values], function (err, result) {
|
||
|
if (err) throw err;
|
||
|
console.log("Number of records inserted: " + result.affectedRows);
|
||
|
res.redirect('/stock');
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
// Simple way to expose a function
|
||
|
exports = module.exports = rws;
|
||
|
|
||
|
// rws = RunWebServer
|
||
|
function rws() {
|
||
|
server.listen(port, () => {
|
||
|
console.log('✅ Webserver is running ( %d )', port);
|
||
|
});
|
||
|
};
|