diff options
Diffstat (limited to 'src/server/database.ts')
-rw-r--r-- | src/server/database.ts | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/src/server/database.ts b/src/server/database.ts index 6cc9945b9..e08385d98 100644 --- a/src/server/database.ts +++ b/src/server/database.ts @@ -1,20 +1,20 @@ import * as mongodb from 'mongodb'; export class Database { + public static DocumentsCollection = 'documents'; public static Instance = new Database(); private MongoClient = mongodb.MongoClient; private url = 'mongodb://localhost:27017/Dash'; + private currentWrites: { [_id: string]: Promise<void> } = {}; private db?: mongodb.Db; constructor() { this.MongoClient.connect(this.url, (err, client) => this.db = client.db()); } - private currentWrites: { [_id: string]: Promise<void> } = {}; - - public update(id: string, value: any, callback: () => void) { + public update(id: string, value: any, callback: () => void, collectionName = Database.DocumentsCollection) { if (this.db) { - let collection = this.db.collection('documents'); + let collection = this.db.collection(collectionName); const prom = this.currentWrites[id]; const run = (): Promise<void> => { let newProm = new Promise<void>(resolve => { @@ -40,28 +40,28 @@ export class Database { } } - public delete(id: string) { - this.db && this.db.collection('documents').remove({ _id: id }); + public delete(id: string, collectionName = Database.DocumentsCollection) { + this.db && this.db.collection(collectionName).remove({ _id: id }); } - public deleteAll(collectionName: string = 'documents'): Promise<any> { + public deleteAll(collectionName = Database.DocumentsCollection): Promise<any> { return new Promise(res => this.db && this.db.collection(collectionName).deleteMany({}, res)); } - public insert(kvpairs: any) { - this.db && this.db.collection('documents').insertOne(kvpairs, (err: any, res: any) => + public insert(kvpairs: any, collectionName = Database.DocumentsCollection) { + this.db && this.db.collection(collectionName).insertOne(kvpairs, (err, res) => err // && console.log(err) ); } - public getDocument(id: string, fn: (res: any) => void) { - this.db && this.db.collection('documents').findOne({ _id: id }, (err: any, result: any) => + public getDocument(id: string, fn: (res: any) => void, collectionName = Database.DocumentsCollection) { + this.db && this.db.collection(collectionName).findOne({ _id: id }, (err, result) => fn(result ? result : undefined)); } - public getDocuments(ids: string[], fn: (res: any) => void) { - this.db && this.db.collection('documents').find({ _id: { "$in": ids } }).toArray((err, docs) => { + public getDocuments(ids: string[], fn: (res: any) => void, collectionName = Database.DocumentsCollection) { + this.db && this.db.collection(collectionName).find({ _id: { "$in": ids } }).toArray((err, docs) => { if (err) { console.log(err.message); console.log(err.errmsg); |