55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
const fs = require('fs/promises');
|
|
const chalk = require('chalk');
|
|
const path = require('path');
|
|
import QuillDB from "../_/quilldb.js"
|
|
import Titles from "./model/Titles.js"
|
|
import Members from './model/Members.js'
|
|
import Tokens from './model/Tokens.js'
|
|
|
|
export default class Database {
|
|
titles = new Titles()
|
|
members = new Members()
|
|
tokens = new Tokens()
|
|
|
|
fromID = {
|
|
"HY": this.titles,
|
|
"MEMBER": this.members,
|
|
"TOKEN": this.tokens
|
|
}
|
|
|
|
constructor() {
|
|
this.loadData()
|
|
}
|
|
|
|
async loadData() {
|
|
const dbData = await fs.readFile(path.join(process.cwd(), 'db/db.json'), 'utf8');
|
|
let dbJson;
|
|
try {
|
|
dbJson = JSON.parse(dbData);
|
|
} catch {
|
|
dbJson = []
|
|
}
|
|
let nodes = dbJson["nodes"];
|
|
let entries = Object.entries(nodes)
|
|
|
|
for(let i=0; i<entries.length; i++) {
|
|
let entry = entries[i]
|
|
let id = entry[0]; let node = entry[1];
|
|
let type = id.split("-")[0]
|
|
try {
|
|
let collection = this.fromID[type]
|
|
if(collection) {
|
|
collection.add(node)
|
|
} else {
|
|
throw new Error("Type does not exist for node: ", id)
|
|
}
|
|
} catch(e) {
|
|
throw e
|
|
}
|
|
}
|
|
}
|
|
|
|
saveData() {
|
|
|
|
}
|
|
} |