diff --git a/src/modules/configuration/couch/constants.ts b/src/modules/configuration/couch/constants.ts index 81278e6..c3045f2 100644 --- a/src/modules/configuration/couch/constants.ts +++ b/src/modules/configuration/couch/constants.ts @@ -1,3 +1 @@ -export const DatabaseListen = [ - 'transaction' -] \ No newline at end of file +export const DatabaseListen = ['transaction']; diff --git a/src/modules/configuration/couch/couch.module.ts b/src/modules/configuration/couch/couch.module.ts index c0e0232..15b582c 100644 --- a/src/modules/configuration/couch/couch.module.ts +++ b/src/modules/configuration/couch/couch.module.ts @@ -8,7 +8,7 @@ import { CqrsModule } from '@nestjs/cqrs'; imports: [ ConfigModule.forRoot(), // TypeOrmModule.forFeature([UserPrivilegeModel], CONNECTION_NAME.DEFAULT), - CqrsModule, + CqrsModule, ], controllers: [CouchDataController], providers: [CouchService], diff --git a/src/modules/configuration/couch/data/services/couch.service.ts b/src/modules/configuration/couch/data/services/couch.service.ts index 1af2890..391506c 100644 --- a/src/modules/configuration/couch/data/services/couch.service.ts +++ b/src/modules/configuration/couch/data/services/couch.service.ts @@ -1,35 +1,31 @@ -import { Injectable } from "@nestjs/common"; -import { DatabaseListen } from "../../constants"; -import { EventBus } from "@nestjs/cqrs"; -import { ChangeDocEvent } from "../../domain/events/change-doc.event"; +import { Injectable } from '@nestjs/common'; +import { DatabaseListen } from '../../constants'; +import { EventBus } from '@nestjs/cqrs'; +import { ChangeDocEvent } from '../../domain/events/change-doc.event'; @Injectable() export class CouchService { + constructor(private eventBus: EventBus) {} - constructor( - private eventBus: EventBus, - ) {} + async onModuleInit() { + const nano = require('nano')('http://root:password@172.10.10.2:5970'); + for (const database of DatabaseListen) { + const db = nano.db.use(database); + db.changesReader.start({ includeDocs: true }).on('change', (change) => { + this.changeDoc(change, database); + }); - async onModuleInit() { - const nano = require('nano')('http://root:password@172.10.10.2:5970'); - for (const database of DatabaseListen) { - const db = nano.db.use(database) - db.changesReader.start({ includeDocs: true }) - .on('change', (change) => { - this.changeDoc(change, database); - }) - - console.log(`start listen database ${database}`) - } + console.log(`start listen database ${database}`); } + } - private changeDoc(data, database) { - this.eventBus.publish( - new ChangeDocEvent({ - id: data.id, - database: database, - data: data.doc, - }) - ) - } -} \ No newline at end of file + private changeDoc(data, database) { + this.eventBus.publish( + new ChangeDocEvent({ + id: data.id, + database: database, + data: data.doc, + }), + ); + } +} diff --git a/src/modules/configuration/couch/domain/events/change-doc.event.ts b/src/modules/configuration/couch/domain/events/change-doc.event.ts index 25b6394..9807450 100644 --- a/src/modules/configuration/couch/domain/events/change-doc.event.ts +++ b/src/modules/configuration/couch/domain/events/change-doc.event.ts @@ -1,9 +1,9 @@ export class ChangeDocEvent { - constructor(public readonly data: IEventDoc) {} + constructor(public readonly data: IEventDoc) {} } export interface IEventDoc { - id: string, - database: string, - data: any, -} \ No newline at end of file + id: string; + database: string; + data: any; +}