fix: update nano db configuration
parent
99261f37cd
commit
c87c852509
|
@ -1,21 +1,32 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
import { DatabaseListen } from '../../constants';
|
import { DatabaseListen } from '../../constants';
|
||||||
import { EventBus } from '@nestjs/cqrs';
|
import { EventBus } from '@nestjs/cqrs';
|
||||||
import { ChangeDocEvent } from '../../domain/events/change-doc.event';
|
import { ChangeDocEvent } from '../../domain/events/change-doc.event';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
|
import * as Nano from 'nano';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CouchService {
|
export class CouchService {
|
||||||
constructor(private eventBus: EventBus) {}
|
constructor(
|
||||||
|
private eventBus: EventBus,
|
||||||
|
private configService: ConfigService,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
get nanoInstance() {
|
||||||
|
const couchConfiguration = this.configService.get<string>('COUCHDB_CONFIG');
|
||||||
|
return Nano(couchConfiguration);
|
||||||
|
}
|
||||||
|
|
||||||
async onModuleInit() {
|
async onModuleInit() {
|
||||||
const nano = require('nano')('http://root:password@172.10.10.2:5970');
|
const nano = this.nanoInstance;
|
||||||
for (const database of DatabaseListen) {
|
for (const database of DatabaseListen) {
|
||||||
const db = nano.db.use(database);
|
const db = nano.db.use(database);
|
||||||
db.changesReader.start({ includeDocs: true }).on('change', (change) => {
|
db.changesReader.start({ includeDocs: true }).on('change', (change) => {
|
||||||
this.changeDoc(change, database);
|
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) {
|
public async createDoc(data, database) {
|
||||||
try {
|
try {
|
||||||
const nano = require('nano')('http://root:password@172.10.10.2:5970');
|
const nano = this.nanoInstance;
|
||||||
const db = nano.use(database);
|
const db = nano.use(database);
|
||||||
return await db.insert(data);
|
return await db.insert(data);
|
||||||
} catch (error) {}
|
} catch (error) {}
|
||||||
|
@ -39,7 +50,7 @@ export class CouchService {
|
||||||
|
|
||||||
public async deleteDoc(data, database) {
|
public async deleteDoc(data, database) {
|
||||||
try {
|
try {
|
||||||
const nano = require('nano')('http://root:password@172.10.10.2:5970');
|
const nano = this.nanoInstance;
|
||||||
const db = nano.use(database);
|
const db = nano.use(database);
|
||||||
const result = await db.get(data.id);
|
const result = await db.get(data.id);
|
||||||
await db.destroy(data.id, result._rev);
|
await db.destroy(data.id, result._rev);
|
||||||
|
@ -48,7 +59,7 @@ export class CouchService {
|
||||||
|
|
||||||
public async updateDoc(data, database) {
|
public async updateDoc(data, database) {
|
||||||
try {
|
try {
|
||||||
const nano = require('nano')('http://root:password@172.10.10.2:5970');
|
const nano = this.nanoInstance;
|
||||||
const db = nano.use(database);
|
const db = nano.use(database);
|
||||||
const result = await db.get(data.id);
|
const result = await db.get(data.id);
|
||||||
console.log(result, 'dsa');
|
console.log(result, 'dsa');
|
||||||
|
|
|
@ -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 { ApiTags } from '@nestjs/swagger';
|
||||||
import { Unprotected } from 'src/core/guards';
|
import { Public } from 'src/core/guards';
|
||||||
import * as Nano from 'nano';
|
import * as Nano from 'nano';
|
||||||
import { CreateUserPrivilegeDto } from 'src/modules/user-related/user-privilege/infrastructure/dto/create-user-privilege.dto';
|
import { CreateUserPrivilegeDto } from 'src/modules/user-related/user-privilege/infrastructure/dto/create-user-privilege.dto';
|
||||||
|
import { ConfigService } from '@nestjs/config';
|
||||||
|
|
||||||
@ApiTags(`couch`)
|
@ApiTags(`couch`)
|
||||||
@Controller('v1/couch')
|
@Controller('v1/couch')
|
||||||
@Unprotected()
|
@Public()
|
||||||
|
@Injectable()
|
||||||
export class CouchDataController {
|
export class CouchDataController {
|
||||||
|
constructor(private configService: ConfigService) {}
|
||||||
|
|
||||||
|
get nanoInstance() {
|
||||||
|
const couchConfiguration = this.configService.get<string>('COUCHDB_CONFIG');
|
||||||
|
return Nano(couchConfiguration);
|
||||||
|
}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
async createDoc(@Body() entity: CreateUserPrivilegeDto) {
|
async createDoc(@Body() entity: CreateUserPrivilegeDto) {
|
||||||
try {
|
try {
|
||||||
let n = Nano('http://admin:secret@127.0.0.1:5984');
|
const n = this.nanoInstance;
|
||||||
let db = await n.db.create(entity.name);
|
await n.db.create(entity.name);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error, 'dsa');
|
console.log(error, 'dsa');
|
||||||
}
|
}
|
||||||
|
@ -22,17 +31,17 @@ export class CouchDataController {
|
||||||
@Post('doc')
|
@Post('doc')
|
||||||
async createDocs(@Body() entity: CreateUserPrivilegeDto) {
|
async createDocs(@Body() entity: CreateUserPrivilegeDto) {
|
||||||
try {
|
try {
|
||||||
const nano = require('nano')('http://admin:secret@127.0.0.1:5984');
|
const nano = this.nanoInstance;
|
||||||
const people = nano.db.use('string');
|
const people = nano.db.use('string');
|
||||||
console.log(await people.info());
|
console.log(await people.info(), entity);
|
||||||
const data = {
|
// const data = {
|
||||||
id: '1212',
|
// id: '1212',
|
||||||
name: 'dsadas',
|
// name: 'dsadas',
|
||||||
};
|
// };
|
||||||
// await people.insert(data)
|
// await people.insert(data)
|
||||||
|
|
||||||
people.changesReader
|
people.changesReader
|
||||||
.start()
|
.start({})
|
||||||
.on('change', (change) => {
|
.on('change', (change) => {
|
||||||
console.log(change);
|
console.log(change);
|
||||||
})
|
})
|
||||||
|
@ -53,9 +62,10 @@ export class CouchDataController {
|
||||||
@Get()
|
@Get()
|
||||||
async getDoc() {
|
async getDoc() {
|
||||||
try {
|
try {
|
||||||
let n = Nano('http://admin:secret@127.0.0.1:5984');
|
const n = this.nanoInstance;
|
||||||
const people = n.use('string');
|
const people = n.db.get('user');
|
||||||
|
|
||||||
|
return people;
|
||||||
// return people.get();
|
// return people.get();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.log(error, 'dsa');
|
console.log(error, 'dsa');
|
||||||
|
|
Loading…
Reference in New Issue