summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-01-21 09:08:22 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-01-21 09:08:22 -0500
commita50ccedcaa774b6ad9a4a7d657329b03bd6b3f7f (patch)
tree21e46d7f0dd4c44605746b4d39b1b00e81c49adc /src
parentmore shit (diff)
downloadxssbook-a50ccedcaa774b6ad9a4a7d657329b03bd6b3f7f.tar.gz
xssbook-a50ccedcaa774b6ad9a4a7d657329b03bd6b3f7f.tar.bz2
xssbook-a50ccedcaa774b6ad9a4a7d657329b03bd6b3f7f.zip
start backend
Diffstat (limited to 'src')
-rw-r--r--src/api.js9
-rw-r--r--src/database.js74
2 files changed, 83 insertions, 0 deletions
diff --git a/src/api.js b/src/api.js
new file mode 100644
index 0000000..7d13a07
--- /dev/null
+++ b/src/api.js
@@ -0,0 +1,9 @@
+const express = require('express')
+const router = express.Router()
+const database = require('./database.js')
+
+router.get('/', (req, res) => {
+ res.status(200).send( {msg: 'xssbook api'} )
+})
+
+module.exports = router; \ No newline at end of file
diff --git a/src/database.js b/src/database.js
new file mode 100644
index 0000000..3ca57ab
--- /dev/null
+++ b/src/database.js
@@ -0,0 +1,74 @@
+const sqlite3 = require('sqlite3')
+const path = require('path').resolve(__dirname, '../xssbook.db')
+
+let db = new sqlite3.Database(path, sqlite3.OPEN_READWRITE, (err) => {
+ if (err && err.code == "SQLITE_CANTOPEN") {
+ createDatabase();
+ return;
+ } else if (err) {
+ console.log(err);
+ }
+ addUser('John','Doe','johndoe@gmail.com','password','lettuce',0,'jan',0,69)
+})
+
+function createDatabase() {
+ db = new sqlite3.Database(path, (err) => {
+ if (err) {
+ console.log(err);
+ }
+ createTables();
+ });
+}
+
+function createTables() {
+ db.exec(`
+ CREATE TABLE users (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ first VARCHAR(20) NOT NULL,
+ last VARCHAR(20) NOT NULL,
+ email VARCHAR(50) NOT NULL,
+ password VARCHAR(50) NOT NULL,
+ gender VARCHAR(20) NOT NULL,
+ date INTEGER NOT NULL,
+ month VARCHAR(3) NOT NULL,
+ day INTEGER NOT NULL,
+ year INTEGER NOT NULL
+ );
+
+ CREATE TABLE posts (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ user INTEGER NOT NULL,
+ content TEXT NOT NULL,
+ likes TEXT NOT NULL,
+ comments TEXT NOT NULL,
+ date INTEGER NOT NULL,
+ FOREIGN KEY(user) REFERENCES users(id)
+ );
+
+ CREATE TABLE avatars (
+ id INTEGER PRIMARY KEY NOT NULL,
+ avatar BLOB,
+ banner BLOB,
+ FOREIGN KEY(id) REFERENCES users(id)
+ );
+ `, (err) => {
+ if(err) {
+ console.log(err)
+ }
+ })
+}
+
+function addUser(first, last, email, password, gender, date, month, day, year) {
+ db.exec(`
+ INSERT INTO users (first, last, email, password, gender, date, month, day, year) VALUES (?,?,?,?,?,?,?,?,?);
+ `, [first, last, email, password, gender, date, month, day, year] , (err) => {
+ if(err) {
+ console.log(err)
+ return false
+ } else {
+ return true
+ }
+ })
+}
+
+