summary refs log tree commit diff
path: root/src/util/Config.ts
blob: ad70d37ae6ef3438ef69f1196313e0a759f5bac4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import { Schema, model, Types, Document } from "mongoose";
import "missing-native-js-functions";
import db, { MongooseCache } from "./Database";

var Config = new MongooseCache(db.collection("config"), [], { onlyEvents: false });

export default {
	init: async function init() {
		await Config.init();
		return this.setAll(Config.data.merge(DefaultOptions));
	},
	getAll: function get() {
		return <DefaultOptions>Config.data;
	},
	setAll: function set(val: any) {
		return db.collection("config").updateOne({}, { $set: val });
	},
};

export const DefaultOptions = {
	api: {},
	gateway: {},
	voice: {},
};

export interface DefaultOptions extends Document {
	api?: any;
	gateway?: any;
	voice?: any;
}

export const ConfigSchema = new Schema({
	api: Object,
	gateway: Object,
	voice: Object,
});

export const ConfigModel = model<DefaultOptions>("Config", ConfigSchema, "config");