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,
|
||||
"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 nano = require('nano');
|
||||
|
||||
@Module({
|
||||
providers: [RedmineIssuesCacheWriterService],
|
||||
exports: [RedmineIssuesCacheWriterService],
|
||||
})
|
||||
export class RedmineIssuesCacheWriterModule {}
|
||||
@Module({})
|
||||
export class RedmineIssuesCacheWriterModule {
|
||||
static register(params: {
|
||||
issueDocumentScope: nano.DocumentScope<any>;
|
||||
}): 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()
|
||||
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