permalink done

This commit is contained in:
Ben
2018-09-05 17:02:52 +01:00
parent 03ba991b47
commit a3842b9541
12 changed files with 189 additions and 6 deletions

View File

@@ -7,11 +7,13 @@ let connection;
let User;
let Auth;
let PermaNote;
export class BaseDatabase {
static get Connection() {return connection;}
static get User() {return User}
static get Auth() {return Auth}
static get PermaNote() {return PermaNote}
static async init() {
Logger.info('Connecting to SQLite Database');
@@ -54,6 +56,20 @@ export class BaseDatabase {
tableName: `auth`
});
PermaNote = connection.define('permanote', {
uid: {
type: Sequelize.BIGINT,
primaryKey: true,
unique: true
},
endpoint: Sequelize.TEXT,
text: Sequelize.TEXT,
creatorid: {
type: Sequelize.BIGINT,
allowNull: true
}
});
try {
await connection.sync({force: false});
} catch (e) {

View File

@@ -29,3 +29,4 @@ export class Database extends BaseDatabase {
Database.users = require('./users').UserTools;
Database.auth = require('./tokens').TokenTools;
Database.permalink = require('./permaLink').PermaLinkTools;

View File

@@ -0,0 +1,56 @@
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;
id = id || null;
try {
let note = await PermaNote.create({
uid: uid,
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(uid) {
let PermaNote = BaseDatabase.PermaNote;
try {
let note = await PermaNote.findOne({where: {uid: uid}});
if (note == null) return -1;
return note;
} catch (e) {
Logger.error(`An error occured while querying for a permanote by uid ${uid}: ${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;
}
}
}