Добавлена функция поиска задач по запросам couchdb
This commit is contained in:
parent
d8b2851366
commit
b91f54b26a
2 changed files with 13 additions and 1 deletions
|
|
@ -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 { RedmineTypes } from '../models/redmine-types';
|
||||||
import { IssuesService } from './issues.service';
|
import { IssuesService } from './issues.service';
|
||||||
|
|
||||||
|
|
@ -6,6 +6,11 @@ import { IssuesService } from './issues.service';
|
||||||
export class IssuesController {
|
export class IssuesController {
|
||||||
constructor(private issuesService: IssuesService) {}
|
constructor(private issuesService: IssuesService) {}
|
||||||
|
|
||||||
|
@Post('find')
|
||||||
|
async find(@Body() params: any): Promise<RedmineTypes.Issue[]> {
|
||||||
|
return await this.issuesService.find(params);
|
||||||
|
}
|
||||||
|
|
||||||
@Get(':id')
|
@Get(':id')
|
||||||
async getIssue(@Param('id') id: number): Promise<RedmineTypes.Issue> {
|
async getIssue(@Param('id') id: number): Promise<RedmineTypes.Issue> {
|
||||||
return await this.issuesService.getIssue(id);
|
return await this.issuesService.getIssue(id);
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import { RedmineEventsGateway } from '../events/redmine-events.gateway';
|
||||||
import { RedmineIssuesCacheWriterService } from '../issue-cache-writer/redmine-issues-cache-writer.service';
|
import { RedmineIssuesCacheWriterService } from '../issue-cache-writer/redmine-issues-cache-writer.service';
|
||||||
import { RedmineDataLoader } from '../redmine-data-loader/redmine-data-loader';
|
import { RedmineDataLoader } from '../redmine-data-loader/redmine-data-loader';
|
||||||
import { MemoryCache } from '../utils/memory-cache';
|
import { MemoryCache } from '../utils/memory-cache';
|
||||||
|
import nano from 'nano';
|
||||||
|
|
||||||
export const ISSUE_MEMORY_CACHE_LIFETIME = 30 * 1000;
|
export const ISSUE_MEMORY_CACHE_LIFETIME = 30 * 1000;
|
||||||
const ISSUE_MEMORY_CACHE_AUTOCLEAN_INTERVAL = 1000 * 60 * 5;
|
const ISSUE_MEMORY_CACHE_AUTOCLEAN_INTERVAL = 1000 * 60 * 5;
|
||||||
|
|
@ -25,6 +26,12 @@ export class IssuesService {
|
||||||
private redmineEventsGateway: RedmineEventsGateway,
|
private redmineEventsGateway: RedmineEventsGateway,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
async find(query: nano.MangoQuery): Promise<RedmineTypes.Issue[]> {
|
||||||
|
const issueDb = await this.issues.getDatasource();
|
||||||
|
const res = await issueDb.find(query);
|
||||||
|
return res.docs;
|
||||||
|
}
|
||||||
|
|
||||||
async getIssue(
|
async getIssue(
|
||||||
issueId: number,
|
issueId: number,
|
||||||
force = false,
|
force = false,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue