Former-commit-id: 9072f7b9342c8edc6f1da22555d2ea8585906ff0
This commit is contained in:
Ben
2022-04-10 00:22:42 +01:00
parent d1104257c8
commit 944ac209f0
7 changed files with 8331 additions and 140 deletions

2
.env
View File

@@ -14,4 +14,4 @@ DATABASE_PORT=5432
DATABASE_DB=legolog
DATABASE_DB_DEV=legolog
DATABASE_USER=postgres
DATABASE_PASSWORD=password
DATABASE_PASSWORD=postgres

View File

@@ -1,3 +1,6 @@
CREATE DATABASE IF NOT EXISTS `legolog`;
USE `legolog`;
CREATE TABLE IF NOT EXISTS tag (
id INT NOT NULL PRIMARY KEY,
name VARCHAR (100)
@@ -49,14 +52,13 @@ CREATE TABLE IF NOT EXISTS lego_brick_tag (
CREATE TABLE IF NOT EXISTS lego_set_tag (
id VARCHAR (50) NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL
set_id VARCHAR (50) NOT NULL
tag INT NOT NULL,
FOREIGN KEY ( set_id ) REFERENCES lego_set( id ),
FOREIGN KEY ( tag ) REFERENCES tag( id ),
)
CREATE TABLE IF NOT EXISTS set_descriptor (
id VARCHAR (50) NOT NULL PRIMARY KEY,
set_id VARCHAR (50) NOT NULL,
brick_id VARCHAR (50) NOT NULL,
amount INT,
@@ -82,7 +84,6 @@ CREATE TABLE IF NOT EXISTS lego_set_inventory (
FOREIGN KEY ( id ) REFERENCES lego_set( id )
);
CREATE TABLE IF NOT EXISTS users (
id VARCHAR (50) NOT NULL PRIMARY KEY,
email text NOT NULL,
@@ -93,3 +94,20 @@ CREATE TABLE IF NOT EXISTS users (
date_created TIMESTAMP WITHOUT TIME ZONE NOT NULL,
date_updated TIMESTAMP WITHOUT TIME ZONE NOT NULL,
);
CREATE TABLE IF NOT EXISTS orders (
id VARCHAR (50) NOT NULL PRIMARY KEY,
user_id VARCHAR (50) NOT NULL,
date_placed TIMESTAMP WITHOUT TIME ZONE NOT NULL,
FOREIGN KEY ( user_id ) REFERENCES users( id )
);
CREATE TABLE IF NOT EXISTS order_items (
order_id VARCHAR (50) NOT NULL,
brick_id VARCHAR (50),
set_id VARCHAR (50),
amount INT NOT NULL,
FOREIGN KEY ( order_id ) REFERENCES orders( id ),
FOREIGN KEY ( brick_id ) REFERENCES lego_brick( id )
FOREIGN KEY ( set_id ) REFERENCES lego_set( id )
);

8418
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -5,10 +5,10 @@
"main": "index.js",
"scripts": {
"test": "jest src/__test client/public/__test",
"setup": "npm i && node src/first-time-run.js",
"start": "node src/index.js",
"dev": "nodemon src/index.js --watch src",
"lint": "eslint src --ext .js && eslint client --ext .js",
"setup": "npm i"
"lint": "eslint src --ext .js && eslint client --ext .js"
},
"author": "Ben Kyd <benjaminkyd@gmail.com> (https://benkyd.co.uk)",
"license": "MIT",

View File

@@ -2,7 +2,7 @@ const Logger = require('./logger.js');
const dotenv = require('dotenv');
function load() {
function Load() {
Logger.Info('Loading Config...');
const res = dotenv.config();
Logger.Debug(`CONFIG: ${JSON.stringify(res.parsed)}`);
@@ -21,6 +21,7 @@ function load() {
}
}
module.exports = {
Load: load,
Load,
};

15
src/first-time-run.js Normal file
View File

@@ -0,0 +1,15 @@
// Populate databaes, create admin user, etc
const Database = require('./database/database.js');
console.log('LegoLog Setting Up:tm:');
async main() {
// connect to database
const Database = new Databse.IDatabase();
await Database.connect();
// run setup script to create schema
}
main();

View File

@@ -5,10 +5,9 @@ const API = require('./routes/api.js');
const Databse = require('./database/database.js');
// TODO: The first time running needs to populate the database with the bricks and sets.
async function main() {
Config.Load();
await Logger.Init({
logLevel: process.env.LOG_LEVEL,
logToConsole: process.env.LOG_CONSOLE,