added some more database interaction

This commit is contained in:
Ben
2018-08-29 19:16:53 +01:00
parent e80a1c1b6e
commit 8b01bf38cb
6 changed files with 1090 additions and 1070 deletions

2106
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,9 @@ async function init() {
await Database.testConnection(); await Database.testConnection();
await Server.start(); await Server.start();
await Router.initEndpoints(); await Router.initEndpoints();
// Logger.database('Database Log'); // Logger.database('Database Log');
// Logger.middleware('GET request to /'); // Logger.middleware('GET request to /');
// Logger.debug('Debug mode enabled'); // Logger.debug('Debug mode enabled');

View File

@@ -5,12 +5,15 @@ import {Config} from '../../config/config';
let connection; let connection;
let user; let User;
let auth; let Auth;
let session; let Session;
export class BaseDatabase { export class BaseDatabase {
static get Connection() {return connection;} static get Connection() {return connection;}
static get User() {return User}
static get Auth() {return Auth}
static get Session() {return Session}
static async init() { static async init() {
Logger.info('Connecting to SQLite Database'); Logger.info('Connecting to SQLite Database');
@@ -23,7 +26,7 @@ export class BaseDatabase {
storage: 'src/models/database/sqlite/database.sqlite', storage: 'src/models/database/sqlite/database.sqlite',
}); });
user = connection.define('user', { User = connection.define('user', {
id: { id: {
type: Sequelize.BIGINT, type: Sequelize.BIGINT,
primaryKey: true, primaryKey: true,
@@ -35,11 +38,13 @@ export class BaseDatabase {
ip: Sequelize.TEXT, ip: Sequelize.TEXT,
lastupdated: Sequelize.TEXT, lastupdated: Sequelize.TEXT,
verified: Sequelize.BOOLEAN, verified: Sequelize.BOOLEAN,
authcode: Sequelize.STRING, authcode: Sequelize.TEXT,
timeauthed: Sequelize.TEXT timeauthed: Sequelize.TEXT
}, {
tableName: `user`
}); });
auth = connection.define('auth', { Auth = connection.define('auth', {
id: { id: {
type: Sequelize.BIGINT, type: Sequelize.BIGINT,
primaryKey: true, primaryKey: true,
@@ -49,9 +54,11 @@ export class BaseDatabase {
validator: Sequelize.TEXT, validator: Sequelize.TEXT,
uid: Sequelize.BIGINT, uid: Sequelize.BIGINT,
expires: Sequelize.TEXT expires: Sequelize.TEXT
}, {
tableName: `auth`
}); });
session = connection.define('session', { Session = connection.define('session', {
sessionid: { sessionid: {
type: Sequelize.BIGINT, type: Sequelize.BIGINT,
primaryKey: true, primaryKey: true,
@@ -60,9 +67,12 @@ export class BaseDatabase {
sessiondata: Sequelize.TEXT, sessiondata: Sequelize.TEXT,
timecreated: Sequelize.TEXT, timecreated: Sequelize.TEXT,
timeupdated: Sequelize.TEXT timeupdated: Sequelize.TEXT
}, {
tableName: `session`
}); });
try { try {
await connection.sync(); await connection.sync({force: false});
} catch (e) { } catch (e) {
Logger.panic('Failed to connect to SQLite Database, error:', e) Logger.panic('Failed to connect to SQLite Database, error:', e)
} }

View File

@@ -12,6 +12,7 @@ export class Database extends BaseDatabase {
connection connection
.query(query) .query(query)
.then(result => { .then(result => {
Logger.database(JSON.stringify(res, null, 4));
res = result[0][0].result; res = result[0][0].result;
resolve(); resolve();
}) })

View File

@@ -5,7 +5,28 @@ import {Logger} from '../logger';
import {Config} from '../../config/config'; import {Config} from '../../config/config';
export class UserTools extends BaseDatabase { export class UserTools extends BaseDatabase {
static async testing() { static async listAll() {
Logger.debug('Hello, world!'); let User = BaseDatabase.User;
return User.findAll();
}
static async newUser(id, username, password, email, ip, authcode) {
let User = BaseDatabase.User;
try {
let user = await User.create({
id: id,
username: username,
password: password,
email: email,
ip: ip,
lastupdated: new Date().getTime().toString(),
verified: false,
authcode: authcode,
timeauthed: '-1'
});
} catch (e) {
Logger.error(`An error occured while inserting user ${username}, id ${id} into users table: ${JSON.stringify(e.errors)}`);
return -1;
}
} }
} }