Добавлен источник данных для журнала изменений
This commit is contained in:
parent
8c77117703
commit
4928357e8a
1 changed files with 32 additions and 0 deletions
32
src/couchdb-datasources/changes.ts
Normal file
32
src/couchdb-datasources/changes.ts
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import { CouchDb } from '@app/event-emitter/couchdb-datasources/couchdb';
|
||||
import { Injectable, Logger } from '@nestjs/common';
|
||||
import nano from 'nano';
|
||||
|
||||
@Injectable()
|
||||
export class Changes {
|
||||
private static logger = new Logger(Changes.name);
|
||||
private static changesDb = null;
|
||||
private static initilized = false;
|
||||
|
||||
// TODO: Указать полные типы данных
|
||||
|
||||
static async getDatasource(): Promise<nano.DocumentScope<any>> {
|
||||
if (Changes.initilized) {
|
||||
return Changes.changesDb;
|
||||
}
|
||||
Changes.initilized = true;
|
||||
const n = CouchDb.getCouchDb();
|
||||
const changesDbName = ''; // TODO: Загрузить из конфига
|
||||
const dbs = await n.db.list();
|
||||
if (!dbs.includes(changesDbName)) {
|
||||
await n.db.create(changesDbName);
|
||||
}
|
||||
Changes.changesDb = await n.db.use(changesDbName);
|
||||
Changes.logger.log(`Connected to changes db - ${changesDbName}`);
|
||||
return Changes.changesDb;
|
||||
}
|
||||
|
||||
async getDatasource(): Promise<nano.DocumentScope<any>> {
|
||||
return await Changes.getDatasource();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue