Big update
This commit is contained in:
@@ -1,21 +1,33 @@
|
||||
import MongoStoredObjectCollection from "./MongoStoredObjectCollection";
|
||||
import mongo from "mongodb";
|
||||
import {DEFAULT_RULESET, DEFAULT_RULESET_NAME, RulesetSchema} from "../rulesets";
|
||||
import {getMongoObjectCollection} from "../database";
|
||||
import Ruleset from "../Objects/Ruleset";
|
||||
import {ActiveRecordId} from "../Objects/ActiveRecord";
|
||||
|
||||
type RulesetMongoData = RulesetSchema;
|
||||
type RulesetMongoData = RulesetSchema & {id: ActiveRecordId};
|
||||
|
||||
class RulesetCollection extends MongoStoredObjectCollection<RulesetMongoData> {
|
||||
constructor(collectionClient: mongo.Collection) {
|
||||
super(collectionClient);
|
||||
private static instance?: RulesetCollection;
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
static getInstance(): RulesetCollection {
|
||||
if (RulesetCollection.instance === undefined) {
|
||||
RulesetCollection.instance = new RulesetCollection();
|
||||
}
|
||||
return RulesetCollection.instance;
|
||||
}
|
||||
|
||||
async init() {
|
||||
this.mongoDbClientCollection = getMongoObjectCollection("rulesets");
|
||||
}
|
||||
|
||||
private async rulesetFrom(data: RulesetMongoData): Promise<Ruleset> {
|
||||
return new Ruleset(data.id, data);
|
||||
}
|
||||
|
||||
async read(id: string): Promise<Ruleset> {
|
||||
async read(id: ActiveRecordId): Promise<Ruleset> {
|
||||
if (id === DEFAULT_RULESET_NAME) {
|
||||
return new Ruleset(DEFAULT_RULESET_NAME, DEFAULT_RULESET);
|
||||
}
|
||||
@@ -26,5 +38,4 @@ class RulesetCollection extends MongoStoredObjectCollection<RulesetMongoData> {
|
||||
}
|
||||
}
|
||||
|
||||
const RulesetCollectionSingleton = new RulesetCollection(getMongoObjectCollection("users"));
|
||||
export default RulesetCollectionSingleton;
|
||||
export default RulesetCollection.getInstance;
|
||||
Reference in New Issue
Block a user