Big update

This commit is contained in:
Daniel Ledda
2020-08-13 15:10:55 +02:00
parent 42b7560d6d
commit 5f747142e5
28 changed files with 310 additions and 179 deletions

View File

@@ -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;