From b91f54b26af23eb18e06a62898df3e939115fad0 Mon Sep 17 00:00:00 2001 From: Pavel Gnedov Date: Tue, 19 Jul 2022 11:36:49 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D0=B0=D0=BC=20couchdb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libs/event-emitter/src/issues/issues.controller.ts | 7 ++++++- libs/event-emitter/src/issues/issues.service.ts | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/libs/event-emitter/src/issues/issues.controller.ts b/libs/event-emitter/src/issues/issues.controller.ts index 4020a6a..608f21e 100644 --- a/libs/event-emitter/src/issues/issues.controller.ts +++ b/libs/event-emitter/src/issues/issues.controller.ts @@ -1,4 +1,4 @@ -import { Controller, Get, Param } from '@nestjs/common'; +import { Body, Controller, Get, Param, Post } from '@nestjs/common'; import { RedmineTypes } from '../models/redmine-types'; import { IssuesService } from './issues.service'; @@ -6,6 +6,11 @@ import { IssuesService } from './issues.service'; export class IssuesController { constructor(private issuesService: IssuesService) {} + @Post('find') + async find(@Body() params: any): Promise { + return await this.issuesService.find(params); + } + @Get(':id') async getIssue(@Param('id') id: number): Promise { return await this.issuesService.getIssue(id); diff --git a/libs/event-emitter/src/issues/issues.service.ts b/libs/event-emitter/src/issues/issues.service.ts index 6f50d51..8358be7 100644 --- a/libs/event-emitter/src/issues/issues.service.ts +++ b/libs/event-emitter/src/issues/issues.service.ts @@ -5,6 +5,7 @@ import { RedmineEventsGateway } from '../events/redmine-events.gateway'; import { RedmineIssuesCacheWriterService } from '../issue-cache-writer/redmine-issues-cache-writer.service'; import { RedmineDataLoader } from '../redmine-data-loader/redmine-data-loader'; import { MemoryCache } from '../utils/memory-cache'; +import nano from 'nano'; export const ISSUE_MEMORY_CACHE_LIFETIME = 30 * 1000; const ISSUE_MEMORY_CACHE_AUTOCLEAN_INTERVAL = 1000 * 60 * 5; @@ -25,6 +26,12 @@ export class IssuesService { private redmineEventsGateway: RedmineEventsGateway, ) {} + async find(query: nano.MangoQuery): Promise { + const issueDb = await this.issues.getDatasource(); + const res = await issueDb.find(query); + return res.docs; + } + async getIssue( issueId: number, force = false,