Добавлена загрузка основной конфигурации
This commit is contained in:
parent
2b2830e656
commit
f5b02ab184
3 changed files with 46 additions and 2 deletions
|
|
@ -1,12 +1,22 @@
|
||||||
import { EventEmitterModule } from '@app/event-emitter';
|
import { EventEmitterModule } from '@app/event-emitter';
|
||||||
import { MainController } from '@app/event-emitter/main/main.controller';
|
import { MainController } from '@app/event-emitter/main/main.controller';
|
||||||
|
import { RedmineIssuesCacheWriterModule } from '@app/redmine-issues-cache-writer';
|
||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
|
import { ConfigModule } from '@nestjs/config';
|
||||||
import { AppController } from './app.controller';
|
import { AppController } from './app.controller';
|
||||||
import { AppService } from './app.service';
|
import { AppService } from './app.service';
|
||||||
|
import { Issues } from './datasources/issues';
|
||||||
|
import configuration from './configs/app';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [EventEmitterModule],
|
imports: [
|
||||||
|
EventEmitterModule,
|
||||||
|
RedmineIssuesCacheWriterModule.register({
|
||||||
|
issueDocumentScopeProvider: Issues.getDatasource,
|
||||||
|
}),
|
||||||
|
ConfigModule.forRoot({ load: [configuration] }),
|
||||||
|
],
|
||||||
controllers: [AppController, MainController],
|
controllers: [AppController, MainController],
|
||||||
providers: [AppService],
|
providers: [AppService, Issues],
|
||||||
})
|
})
|
||||||
export class AppModule {}
|
export class AppModule {}
|
||||||
|
|
|
||||||
14
src/configs/app.ts
Normal file
14
src/configs/app.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
const appConfig = {
|
||||||
|
couchDbUrl:
|
||||||
|
process.env['ELTEX_REDMINE_HELPER_COUCHDB_URL'] || 'http://localhost:5984',
|
||||||
|
|
||||||
|
dbs: {
|
||||||
|
issues:
|
||||||
|
process.env['ELTEX_REDMINE_HELPER_COUCHDB_ISSUES_DB_NAME'] ||
|
||||||
|
'redmine_issues',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default () => {
|
||||||
|
return appConfig;
|
||||||
|
};
|
||||||
20
src/datasources/issues.ts
Normal file
20
src/datasources/issues.ts
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { RedmineTypes } from '@app/redmine-types/index';
|
||||||
|
import { Injectable } from '@nestjs/common';
|
||||||
|
import nano from 'nano';
|
||||||
|
import configuration from '../configs/app';
|
||||||
|
|
||||||
|
const config = configuration();
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class Issues {
|
||||||
|
static async getDatasource(): Promise<
|
||||||
|
nano.DocumentScope<RedmineTypes.Issue>
|
||||||
|
> {
|
||||||
|
const n = nano(config.couchDbUrl);
|
||||||
|
const dbs = await n.db.list();
|
||||||
|
if (!dbs.includes(config.dbs.issues)) {
|
||||||
|
await n.db.create(config.dbs.issues);
|
||||||
|
}
|
||||||
|
return await n.db.use(config.dbs.issues);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue