Добавлен источник данных для журнала изменений

This commit is contained in:
Pavel Gnedov 2022-07-23 21:03:34 +07:00
parent 8c77117703
commit 4928357e8a

View 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();
}
}