Добавлен источник данных для журнала изменений
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