From a44da1024dc39e2d2fef296fc1d4e5894090fce0 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sat, 13 Feb 2021 14:15:59 +0100 Subject: :zap: Config and database update --- src/util/Config.ts | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'src/util/Config.ts') diff --git a/src/util/Config.ts b/src/util/Config.ts index 91ffda01..ad70d37a 100644 --- a/src/util/Config.ts +++ b/src/util/Config.ts @@ -1,31 +1,38 @@ +import { Schema, model, Types, Document } from "mongoose"; import "missing-native-js-functions"; -import db from "./Database"; -import { ProviderCache } from "lambert-db"; -var Config: ProviderCache; +import db, { MongooseCache } from "./Database"; + +var Config = new MongooseCache(db.collection("config"), [], { onlyEvents: false }); export default { - init: async function init(opts: DefaultOptions = DefaultOptions) { - await db.collection("config").findOne({}); - Config = await db.data.config({}).cache(); + init: async function init() { await Config.init(); - await Config.set(opts.merge(Config.cache || {})); + return this.setAll(Config.data.merge(DefaultOptions)); }, getAll: function get() { - return Config.get(); + return Config.data; }, setAll: function set(val: any) { - return Config.set(val); + return db.collection("config").updateOne({}, { $set: val }); }, }; -export interface DefaultOptions { +export const DefaultOptions = { + api: {}, + gateway: {}, + voice: {}, +}; + +export interface DefaultOptions extends Document { api?: any; gateway?: any; voice?: any; } -export const DefaultOptions: DefaultOptions = { - api: {}, - gateway: {}, - voice: {}, -}; +export const ConfigSchema = new Schema({ + api: Object, + gateway: Object, + voice: Object, +}); + +export const ConfigModel = model("Config", ConfigSchema, "config"); -- cgit 1.5.1