permalink done
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -29,3 +29,4 @@ export class Database extends BaseDatabase {
|
||||
|
||||
Database.users = require('./users').UserTools;
|
||||
Database.auth = require('./tokens').TokenTools;
|
||||
Database.permalink = require('./permaLink').PermaLinkTools;
|
||||
|
||||
56
src/models/database/permaLink.js
Normal file
56
src/models/database/permaLink.js
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Reference in New Issue
Block a user