Method "saveIssue" created
This commit is contained in:
parent
7041348e0e
commit
755eecdeed
4 changed files with 45 additions and 27 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
"singleQuote": true,
|
"singleQuote": true,
|
||||||
"trailingComma": "all"
|
"trailingComma": "all",
|
||||||
|
"endOfLine": "auto"
|
||||||
}
|
}
|
||||||
|
|
@ -1,8 +1,22 @@
|
||||||
import { Module } from '@nestjs/common';
|
import { DynamicModule, Module } from '@nestjs/common';
|
||||||
import { RedmineIssuesCacheWriterService } from './redmine-issues-cache-writer.service';
|
import { RedmineIssuesCacheWriterService } from './redmine-issues-cache-writer.service';
|
||||||
|
import nano = require('nano');
|
||||||
|
|
||||||
@Module({
|
@Module({})
|
||||||
providers: [RedmineIssuesCacheWriterService],
|
export class RedmineIssuesCacheWriterModule {
|
||||||
exports: [RedmineIssuesCacheWriterService],
|
static register(params: {
|
||||||
})
|
issueDocumentScope: nano.DocumentScope<any>;
|
||||||
export class RedmineIssuesCacheWriterModule {}
|
}): DynamicModule {
|
||||||
|
return {
|
||||||
|
module: RedmineIssuesCacheWriterModule,
|
||||||
|
providers: [
|
||||||
|
RedmineIssuesCacheWriterService,
|
||||||
|
{
|
||||||
|
provide: 'ISSUE_DOCUMENT_SCOPE',
|
||||||
|
useValue: params.issueDocumentScope,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
exports: [],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
import { Test, TestingModule } from '@nestjs/testing';
|
|
||||||
import { RedmineIssuesCacheWriterService } from './redmine-issues-cache-writer.service';
|
|
||||||
|
|
||||||
describe('RedmineIssuesCacheWriterService', () => {
|
|
||||||
let service: RedmineIssuesCacheWriterService;
|
|
||||||
|
|
||||||
beforeEach(async () => {
|
|
||||||
const module: TestingModule = await Test.createTestingModule({
|
|
||||||
providers: [RedmineIssuesCacheWriterService],
|
|
||||||
}).compile();
|
|
||||||
|
|
||||||
service = module.get<RedmineIssuesCacheWriterService>(RedmineIssuesCacheWriterService);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should be defined', () => {
|
|
||||||
expect(service).toBeDefined();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,4 +1,25 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
import { Inject, Injectable } from '@nestjs/common';
|
||||||
|
import nano from 'nano';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class RedmineIssuesCacheWriterService {}
|
export class RedmineIssuesCacheWriterService {
|
||||||
|
constructor(@Inject() private issueDb: nano.DocumentScope<any>) {}
|
||||||
|
|
||||||
|
async saveIssue(issue: any): Promise<void> {
|
||||||
|
const id = Number(issue['id']);
|
||||||
|
let prevIssue;
|
||||||
|
try {
|
||||||
|
prevIssue = await this.issueDb.get(String(id));
|
||||||
|
} catch (ex) {
|
||||||
|
prevIssue = null;
|
||||||
|
}
|
||||||
|
if (!prevIssue) {
|
||||||
|
await this.issueDb.insert({ _id: String(id), ...issue });
|
||||||
|
} else {
|
||||||
|
const newIssue = issue;
|
||||||
|
newIssue._id = String(id);
|
||||||
|
newIssue._rev = prevIssue._rev;
|
||||||
|
await this.issueDb.insert(newIssue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue