diff --git a/src/modules/configuration/couch/data/services/couch.service.ts b/src/modules/configuration/couch/data/services/couch.service.ts index 721736d..59cc403 100644 --- a/src/modules/configuration/couch/data/services/couch.service.ts +++ b/src/modules/configuration/couch/data/services/couch.service.ts @@ -1,21 +1,32 @@ -import { Injectable } from '@nestjs/common'; +import { Injectable, Logger } from '@nestjs/common'; import { DatabaseListen } from '../../constants'; import { EventBus } from '@nestjs/cqrs'; import { ChangeDocEvent } from '../../domain/events/change-doc.event'; +import { ConfigService } from '@nestjs/config'; + +import * as Nano from 'nano'; @Injectable() export class CouchService { - constructor(private eventBus: EventBus) {} + constructor( + private eventBus: EventBus, + private configService: ConfigService, + ) {} + + get nanoInstance() { + const couchConfiguration = this.configService.get('COUCHDB_CONFIG'); + return Nano(couchConfiguration); + } async onModuleInit() { - const nano = require('nano')('http://root:password@172.10.10.2:5970'); + const nano = this.nanoInstance; 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}`); + Logger.log(`start listen database ${database}`, 'CouchService'); } } @@ -31,7 +42,7 @@ export class CouchService { public async createDoc(data, database) { try { - const nano = require('nano')('http://root:password@172.10.10.2:5970'); + const nano = this.nanoInstance; const db = nano.use(database); return await db.insert(data); } catch (error) {} @@ -39,7 +50,7 @@ export class CouchService { public async deleteDoc(data, database) { try { - const nano = require('nano')('http://root:password@172.10.10.2:5970'); + const nano = this.nanoInstance; const db = nano.use(database); const result = await db.get(data.id); await db.destroy(data.id, result._rev); @@ -48,7 +59,7 @@ export class CouchService { public async updateDoc(data, database) { try { - const nano = require('nano')('http://root:password@172.10.10.2:5970'); + const nano = this.nanoInstance; const db = nano.use(database); const result = await db.get(data.id); console.log(result, 'dsa'); diff --git a/src/modules/configuration/couch/infrastructure/couch.controller.ts b/src/modules/configuration/couch/infrastructure/couch.controller.ts index 0e3704e..195f8e4 100644 --- a/src/modules/configuration/couch/infrastructure/couch.controller.ts +++ b/src/modules/configuration/couch/infrastructure/couch.controller.ts @@ -1,19 +1,28 @@ -import { Body, Controller, Get, Post } from '@nestjs/common'; +import { Body, Controller, Get, Injectable, Post } from '@nestjs/common'; import { ApiTags } from '@nestjs/swagger'; -import { Unprotected } from 'src/core/guards'; +import { Public } from 'src/core/guards'; import * as Nano from 'nano'; import { CreateUserPrivilegeDto } from 'src/modules/user-related/user-privilege/infrastructure/dto/create-user-privilege.dto'; +import { ConfigService } from '@nestjs/config'; @ApiTags(`couch`) @Controller('v1/couch') -@Unprotected() +@Public() +@Injectable() export class CouchDataController { + constructor(private configService: ConfigService) {} + + get nanoInstance() { + const couchConfiguration = this.configService.get('COUCHDB_CONFIG'); + return Nano(couchConfiguration); + } + @Post() async createDoc(@Body() entity: CreateUserPrivilegeDto) { try { - let n = Nano('http://admin:secret@127.0.0.1:5984'); - let db = await n.db.create(entity.name); + const n = this.nanoInstance; + await n.db.create(entity.name); } catch (error) { console.log(error, 'dsa'); } @@ -22,17 +31,17 @@ export class CouchDataController { @Post('doc') async createDocs(@Body() entity: CreateUserPrivilegeDto) { try { - const nano = require('nano')('http://admin:secret@127.0.0.1:5984'); + const nano = this.nanoInstance; const people = nano.db.use('string'); - console.log(await people.info()); - const data = { - id: '1212', - name: 'dsadas', - }; + console.log(await people.info(), entity); + // const data = { + // id: '1212', + // name: 'dsadas', + // }; // await people.insert(data) people.changesReader - .start() + .start({}) .on('change', (change) => { console.log(change); }) @@ -53,9 +62,10 @@ export class CouchDataController { @Get() async getDoc() { try { - let n = Nano('http://admin:secret@127.0.0.1:5984'); - const people = n.use('string'); + const n = this.nanoInstance; + const people = n.db.get('user'); + return people; // return people.get(); } catch (error) { console.log(error, 'dsa');