Have the JSON DB extend the DB handler
This commit is contained in:
parent
4045b3d859
commit
bca094c832
1 changed files with 15 additions and 13 deletions
|
|
@ -1,11 +1,13 @@
|
||||||
import { databaseOptions } from "$/types/config";
|
import { databaseOptions } from "$/types/config";
|
||||||
|
import { DatabaseHandler } from "../Database";
|
||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
export class JSONDatabase {
|
export class JSONDatabase extends DatabaseHandler {
|
||||||
private data: any = {};
|
private data: any = {};
|
||||||
private conf: databaseOptions;
|
private conf: databaseOptions;
|
||||||
|
|
||||||
constructor(conf: databaseOptions) {
|
constructor(conf: databaseOptions) {
|
||||||
|
super();
|
||||||
this.conf = conf;
|
this.conf = conf;
|
||||||
|
|
||||||
if (!fs.existsSync(conf.uri)) {
|
if (!fs.existsSync(conf.uri)) {
|
||||||
|
|
@ -23,24 +25,24 @@ export class JSONDatabase {
|
||||||
fs.writeFileSync(this.conf.uri, JSON.stringify(this.data));
|
fs.writeFileSync(this.conf.uri, JSON.stringify(this.data));
|
||||||
};
|
};
|
||||||
|
|
||||||
public channelExists(channel: string) {
|
public async channelExists(channel: string) {
|
||||||
return this.data[channel] != null;
|
return this.data[channel] != null;
|
||||||
};
|
};
|
||||||
|
|
||||||
public counterExists(channel: string, counter: string) {
|
public async counterExists(channel: string, counter: string) {
|
||||||
return this.channelExists(channel) && this.data[channel].counters[counter] != null;
|
return await this.channelExists(channel) && this.data[channel].counters[counter] != null;
|
||||||
};
|
};
|
||||||
|
|
||||||
public isUserIgnored(channel: string, user: string) {
|
public async isUserIgnored(channel: string, user: string) {
|
||||||
return this.data[channel].ignored_users.includes(user);
|
return this.data[channel].ignored_users.includes(user);
|
||||||
};
|
};
|
||||||
|
|
||||||
public getMessage(channel: string, counter: string) {
|
public async getMessage(channel: string, counter: string) {
|
||||||
return this.data[channel].counters[counter].message;
|
return this.data[channel].counters[counter].message;
|
||||||
};
|
};
|
||||||
|
|
||||||
public addChannel(channel: string) {
|
public async addChannel(channel: string) {
|
||||||
if (this.channelExists(channel)) {
|
if (await this.channelExists(channel)) {
|
||||||
throw new Error("Channel already exists");
|
throw new Error("Channel already exists");
|
||||||
};
|
};
|
||||||
this.data[channel] = {
|
this.data[channel] = {
|
||||||
|
|
@ -49,8 +51,8 @@ export class JSONDatabase {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
public addCounter(channel: string, counter: string) {
|
public async addCounter(channel: string, counter: string) {
|
||||||
if (this.counterExists(channel, counter)) {
|
if (await this.counterExists(channel, counter)) {
|
||||||
throw new Error(`Counter already exists`);
|
throw new Error(`Counter already exists`);
|
||||||
};
|
};
|
||||||
this.data[channel].counters[counter] = {
|
this.data[channel].counters[counter] = {
|
||||||
|
|
@ -59,11 +61,11 @@ export class JSONDatabase {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
public changeCount(channel: string, counter: string, delta: number): number {
|
public async changeCount(channel: string, counter: string, delta: number) {
|
||||||
if (!this.channelExists(channel)) {
|
if (!await this.channelExists(channel)) {
|
||||||
throw new Error("Channel not found");
|
throw new Error("Channel not found");
|
||||||
};
|
};
|
||||||
if (!this.counterExists(channel, counter)) {
|
if (!await this.counterExists(channel, counter)) {
|
||||||
throw new Error("Counter doesn't exist on that channel");
|
throw new Error("Counter doesn't exist on that channel");
|
||||||
};
|
};
|
||||||
return this.data[channel].counters[counter].value += delta;
|
return this.data[channel].counters[counter].value += delta;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue