From 0c8977d4d07511da82b2a5d0951a50b96f559888 Mon Sep 17 00:00:00 2001 From: plane000 Date: Fri, 7 Sep 2018 19:01:14 +0100 Subject: [PATCH] started database abstractions for new data structures --- logs.log | 28 ++++++++++++++++ src/models/database/notegroups.js | 6 ++++ src/models/database/notes.js | 6 ++++ src/models/database/permalinks.js | 54 +++++++++++++++++++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 src/models/database/notegroups.js create mode 100644 src/models/database/notes.js create mode 100644 src/models/database/permalinks.js diff --git a/logs.log b/logs.log index 450443d..327ef44 100644 --- a/logs.log +++ b/logs.log @@ -935,3 +935,31 @@ [2018-9-7 17:49:25] [INFO] HTTP endpoints settup [2018-9-7 17:49:25] [INFO] Initialized ratelimiting middleware [2018-9-7 17:49:25] [READY] +[SYSTEM STARTING UP] +[2018-9-7 19:00:34] [INFO] Loading config +[2018-9-7 19:00:34] [INFO] LOADED: src/config/configs/server.json +[2018-9-7 19:00:34] [INFO] LOADED: src/config/configs/database.json +[2018-9-7 19:00:34] [INFO] Config loaded +[2018-9-7 19:00:34] [INFO] Connecting to SQLite Database +[2018-9-7 19:00:34] [SQLITE] Executing (default): CREATE TABLE IF NOT EXISTS `user` (`id` BIGINT UNIQUE PRIMARY KEY, `username` TEXT, `password` TEXT, `email` TEXT, `ip` TEXT, `lastupdated` TEXT, `verified` TINYINT(1), `authcode` TEXT, `timeauthed` TEXT, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_LIST(`user`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_user_1`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): CREATE TABLE IF NOT EXISTS `auth` (`id` BIGINT UNIQUE PRIMARY KEY, `token` TEXT, `passhash` TEXT, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_LIST(`auth`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_auth_1`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): CREATE TABLE IF NOT EXISTS `permanote` (`uid` BIGINT UNIQUE PRIMARY KEY, `endpoint` TEXT, `text` TEXT, `creatorid` BIGINT, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_LIST(`permanote`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_permanote_1`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): CREATE TABLE IF NOT EXISTS `group` (`id` BIGINT UNIQUE PRIMARY KEY, `creatorid` BIGINT, `order` INTEGER, `lastupdated` TEXT, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_LIST(`group`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_group_1`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): CREATE TABLE IF NOT EXISTS `note` (`id` BIGINT UNIQUE PRIMARY KEY, `content` TEXT, `parentgroup` BIGINT, `creatorid` BIGINT, `order` INTEGER, `catergory` TEXT, `lastupdated` TEXT, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_LIST(`note`) +[2018-9-7 19:00:34] [SQLITE] Executing (default): PRAGMA INDEX_INFO(`sqlite_autoindex_note_1`) +[2018-9-7 19:00:34] [INFO] Connected to SQLite Database +[2018-9-7 19:00:34] [INFO] Server created +[2018-9-7 19:00:34] [INFO] HTTP service is listening at port 8080 +[2018-9-7 19:00:34] [INFO] Setting up API HTTP endpoints +[2018-9-7 19:00:34] [INFO] HTTP endpoints settup +[2018-9-7 19:00:34] [INFO] Initialized ratelimiting middleware +[2018-9-7 19:00:34] [READY] diff --git a/src/models/database/notegroups.js b/src/models/database/notegroups.js new file mode 100644 index 0000000..59adf9a --- /dev/null +++ b/src/models/database/notegroups.js @@ -0,0 +1,6 @@ +import {BaseDatabase} from './baseDatabase'; +import {Logger} from '../logger'; + +export class NoteGroupTools extends BaseDatabase { + +} diff --git a/src/models/database/notes.js b/src/models/database/notes.js new file mode 100644 index 0000000..7915ec8 --- /dev/null +++ b/src/models/database/notes.js @@ -0,0 +1,6 @@ +import {BaseDatabase} from './baseDatabase'; +import {Logger} from '../logger'; + +export class NoteTools extends BaseDatabase { + +} \ No newline at end of file diff --git a/src/models/database/permalinks.js b/src/models/database/permalinks.js new file mode 100644 index 0000000..58a383c --- /dev/null +++ b/src/models/database/permalinks.js @@ -0,0 +1,54 @@ +import Sequelize from 'sequelize'; + +import {BaseDatabase} from './baseDatabase'; +import {Logger} from '../logger'; + +export class PermaLinkTools extends BaseDatabase { + static async listAll() { + let PermaNote = BaseDatabase.PermaNote; + return PermaNote.findAll(); + } + + static async newNote(uid, endpoint, text, id) { + let PermaNote = BaseDatabase.PermaNote; + + try { + let note = await PermaNote.create({ + id: id, + endpoint: endpoint, + text: text, + creatorid: id + }); + return note; + } catch (e) { + Logger.error(`An error occured while inserting user a note with the endpoint ${endpoint} into permanote table: ${e}`); + return -1; + } + } + + static async getNoteByUID(id) { + let PermaNote = BaseDatabase.PermaNote; + + try { + let note = await PermaNote.findOne({where: {id: id}}); + if (note == null) return -1; + return note; + } catch (e) { + Logger.error(`An error occured while querying for a permanote by uid ${id}: ${e}`); + return -1; + } + } + + static async getNoteByEndpoint(endpoint) { + let PermaNote = BaseDatabase.PermaNote; + + try { + let note = await PermaNote.findOne({where: {endpoint: endpoint}}); + if (note == null) return -1; + return note; + } catch (e) { + Logger.error(`An error occured while querying for a permanote by endpoint ${endpoint}: ${e}`); + return -1; + } + } +} \ No newline at end of file