aboutsummaryrefslogtreecommitdiff
path: root/src/server/database.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/database.ts')
-rw-r--r--src/server/database.ts103
1 files changed, 34 insertions, 69 deletions
diff --git a/src/server/database.ts b/src/server/database.ts
index f0435a6c1..6cc9945b9 100644
--- a/src/server/database.ts
+++ b/src/server/database.ts
@@ -7,9 +7,7 @@ export class Database {
private db?: mongodb.Db;
constructor() {
- this.MongoClient.connect(this.url, (err, client) => {
- this.db = client.db();
- });
+ this.MongoClient.connect(this.url, (err, client) => this.db = client.db());
}
private currentWrites: { [_id: string]: Promise<void> } = {};
@@ -18,91 +16,58 @@ export class Database {
if (this.db) {
let collection = this.db.collection('documents');
const prom = this.currentWrites[id];
- let newProm: Promise<void>;
const run = (): Promise<void> => {
- return new Promise<void>(resolve => {
- collection.updateOne({ _id: id }, { $set: value }, {
- upsert: true
- }, (err, res) => {
- if (err) {
- console.log(err.message);
- console.log(err.errmsg);
- }
- // if (res) {
- // console.log(JSON.stringify(res.result));
- // }
- if (this.currentWrites[id] === newProm) {
- delete this.currentWrites[id];
- }
- resolve();
- callback();
- });
+ let newProm = new Promise<void>(resolve => {
+ collection.updateOne({ _id: id }, { $set: value }, { upsert: true }
+ , (err, res) => {
+ if (err) {
+ console.log(err.message);
+ console.log(err.errmsg);
+ }
+ // if (res) {
+ // console.log(JSON.stringify(res.result));
+ // }
+ if (this.currentWrites[id] === newProm) {
+ delete this.currentWrites[id];
+ }
+ resolve();
+ callback();
+ });
});
+ return newProm;
};
- if (prom) {
- newProm = prom.then(run);
- this.currentWrites[id] = newProm;
- } else {
- newProm = run();
- this.currentWrites[id] = newProm;
- }
+ this.currentWrites[id] = prom ? prom.then(run) : run();
}
}
public delete(id: string) {
- if (this.db) {
- let collection = this.db.collection('documents');
- collection.remove({ _id: id });
- }
+ this.db && this.db.collection('documents').remove({ _id: id });
}
public deleteAll(collectionName: string = 'documents'): Promise<any> {
- return new Promise(res => {
- if (this.db) {
- let collection = this.db.collection(collectionName);
- collection.deleteMany({}, res);
- }
- });
+ return new Promise(res =>
+ this.db && this.db.collection(collectionName).deleteMany({}, res));
}
public insert(kvpairs: any) {
- if (this.db) {
- let collection = this.db.collection('documents');
- collection.insertOne(kvpairs, (err: any, res: any) => {
- if (err) {
- // console.log(err)
- return;
- }
- });
- }
+ this.db && this.db.collection('documents').insertOne(kvpairs, (err: any, res: any) =>
+ err // && console.log(err)
+ );
}
public getDocument(id: string, fn: (res: any) => void) {
- var result: JSON;
- if (this.db) {
- let collection = this.db.collection('documents');
- collection.findOne({ _id: id }, (err: any, res: any) => {
- result = res;
- if (!result) {
- fn(undefined);
- }
- fn(result);
- });
- }
+ this.db && this.db.collection('documents').findOne({ _id: id }, (err: any, result: any) =>
+ fn(result ? result : undefined));
}
public getDocuments(ids: string[], fn: (res: any) => void) {
- if (this.db) {
- let collection = this.db.collection('documents');
- let cursor = collection.find({ _id: { "$in": ids } });
- cursor.toArray((err, docs) => {
- if (err) {
- console.log(err.message);
- console.log(err.errmsg);
- }
- fn(docs);
- });
- }
+ this.db && this.db.collection('documents').find({ _id: { "$in": ids } }).toArray((err, docs) => {
+ if (err) {
+ console.log(err.message);
+ console.log(err.errmsg);
+ }
+ fn(docs);
+ });
}
public print() {