Добавил datasource для daily-eccm-reports-v2

This commit is contained in:
Pavel Gnedov 2024-12-09 08:29:21 +07:00
parent 8cae9076bd
commit 40313185a5
2 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,32 @@
import { Injectable, Logger } from '@nestjs/common';
import { CouchDb } from '@app/event-emitter/couchdb-datasources/couchdb';
import nano from 'nano';
import {
DailyEccmV2ReportService,
Report,
} from 'src/reports/daily-eccm-v2.report.service';
@Injectable()
export class DailyEccmReportsV2Datasource {
private static logger = new Logger(DailyEccmReportsV2Datasource.name);
private static db = null;
private static initilized = false;
static async getDatasource(): Promise<nano.DocumentScope<Report>> {
if (DailyEccmReportsV2Datasource.initilized) {
return DailyEccmReportsV2Datasource.db;
}
DailyEccmReportsV2Datasource.initilized = true;
const n = CouchDb.getCouchDb();
const dbName = 'eccm_daily_reports_v2';
const dbs = await n.db.list();
if (!dbs.includes(dbName)) {
await n.db.create(dbName);
}
DailyEccmReportsV2Datasource.db = await n.db.use(dbName);
DailyEccmReportsV2Datasource.logger.log(
`Connected to daily reports db - ${dbName}`,
);
return DailyEccmReportsV2Datasource.db;
}
}

View file

@ -0,0 +1,19 @@
import { Injectable } from '@nestjs/common';
export type Params = any; // TODO
export type Report = {
id: string;
name: string;
datetime: number;
datetimeFormatted: string;
params: Params; // query?, schedule?, etc TODO
data: any;
};
@Injectable()
export class DailyEccmV2ReportService {
constructor(params: Params) {
return;
}
}