Исправлены ошибки и добавлен логгер

This commit is contained in:
Pavel Gnedov 2022-05-27 11:56:22 +07:00
parent d774e6784b
commit fd0f1fc1f7

View file

@ -1,10 +1,12 @@
import { Inject, Injectable } from '@nestjs/common'; import { Inject, Injectable, Logger } from '@nestjs/common';
import { RedmineTypes } from 'libs/redmine-types'; import { RedmineTypes } from 'libs/redmine-types';
import nano from 'nano'; import nano from 'nano';
import { SaveResponse } from './save-response'; import { SaveResponse } from './save-response';
@Injectable() @Injectable()
export class RedmineIssuesCacheWriterService { export class RedmineIssuesCacheWriterService {
private logger = new Logger(RedmineIssuesCacheWriterService.name);
constructor( constructor(
@Inject('ISSUE_DOCUMENT_SCOPE') @Inject('ISSUE_DOCUMENT_SCOPE')
private issueDbProvider: () => Promise< private issueDbProvider: () => Promise<
@ -13,6 +15,9 @@ export class RedmineIssuesCacheWriterService {
) {} ) {}
async saveIssue(issue: any): Promise<SaveResponse> { async saveIssue(issue: any): Promise<SaveResponse> {
this.logger.debug(
`Saving issue ${issue?.id || '-'} - ${issue?.subject || '-'}`,
);
const id = Number(issue['id']); const id = Number(issue['id']);
let prevIssue: (nano.DocumentGetResponse & RedmineTypes.Issue) | null; let prevIssue: (nano.DocumentGetResponse & RedmineTypes.Issue) | null;
const issueDb = await this.issueDbProvider(); const issueDb = await this.issueDbProvider();
@ -32,11 +37,15 @@ export class RedmineIssuesCacheWriterService {
newIssue._rev = prevIssue._rev; newIssue._rev = prevIssue._rev;
await issueDb.insert(newIssue); await issueDb.insert(newIssue);
} }
return { const res = {
prev: prevIssue, prev: prevIssue,
current: newIssue, current: newIssue,
journalsDiff: this.getJournalsDiff(prevIssue, newIssue), journalsDiff: this.getJournalsDiff(prevIssue, newIssue),
}; };
this.logger.debug(
`Saving issue success ${issue?.id || '-'} - ${issue?.subject || '-'}`,
);
return res;
} }
getJournalsDiff( getJournalsDiff(
@ -45,11 +54,11 @@ export class RedmineIssuesCacheWriterService {
): RedmineTypes.Journal[] { ): RedmineTypes.Journal[] {
if ( if (
(!prev || !prev.journals || prev.journals.length === 0) && (!prev || !prev.journals || prev.journals.length === 0) &&
current.journals current?.journals
) { ) {
return current.journals; return current.journals;
} else if (prev.journals && current.journals) { } else if (prev?.journals && current?.journals) {
return this.calcJournalsDiff(prev.journals, current.journals); return this.calcJournalsDiff(prev?.journals, current?.journals);
} }
return []; return [];
} }