Исправлена передача issue и дополнительное логирование

This commit is contained in:
Pavel Gnedov 2022-05-27 12:56:58 +07:00
parent 954adde14e
commit 8bef7ecca4
2 changed files with 30 additions and 9 deletions

View file

@ -14,9 +14,11 @@ export class RedmineIssuesCacheWriterService {
>, >,
) {} ) {}
async saveIssue(issue: any): Promise<SaveResponse> { async saveIssue(issue: RedmineTypes.Issue): Promise<SaveResponse> {
this.logger.debug( this.logger.debug(
`Saving issue ${issue?.id || '-'} - ${issue?.subject || '-'}`, `Saving issue ${issue?.id || '-'} - ${
issue?.subject || '-'
}, issue data = ${JSON.stringify(issue)}`,
); );
const id = Number(issue['id']); const id = Number(issue['id']);
let prevIssue: (nano.DocumentGetResponse & RedmineTypes.Issue) | null; let prevIssue: (nano.DocumentGetResponse & RedmineTypes.Issue) | null;
@ -28,11 +30,11 @@ export class RedmineIssuesCacheWriterService {
} }
let newIssue: nano.DocumentGetResponse & RedmineTypes.Issue; let newIssue: nano.DocumentGetResponse & RedmineTypes.Issue;
if (!prevIssue) { if (!prevIssue) {
newIssue = { ...issue }; newIssue = { ...(issue as any) };
newIssue._id = String(id); newIssue._id = String(id);
await issueDb.insert(newIssue); await issueDb.insert(newIssue);
} else { } else {
const newIssue = { ...issue }; newIssue = { ...(issue as any) };
newIssue._id = String(id); newIssue._id = String(id);
newIssue._rev = prevIssue._rev; newIssue._rev = prevIssue._rev;
await issueDb.insert(newIssue); await issueDb.insert(newIssue);

View file

@ -11,6 +11,7 @@ import { AppService } from './app.service';
import { Issues } from './datasources/issues'; import { Issues } from './datasources/issues';
import configuration from './configs/app'; import configuration from './configs/app';
import { RedmineEventsGateway } from '@app/event-emitter/events/redmine-events.gateway'; import { RedmineEventsGateway } from '@app/event-emitter/events/redmine-events.gateway';
import { RedmineTypes } from '@app/redmine-types/index';
@Module({ @Module({
imports: [ imports: [
@ -34,11 +35,29 @@ export class AppModule implements OnModuleInit {
onModuleInit() { onModuleInit() {
const queue = this.redmineEventsGateway.getIssuesChangesQueue(); const queue = this.redmineEventsGateway.getIssuesChangesQueue();
const subj = queue.queue; const subj = queue.queue;
subj.subscribe(async (issue: any) => { subj.subscribe(async (issues: any) => {
this.logger.debug(`Changed issues = ${JSON.stringify(issues)}`);
for (let i = 0; i < issues.length; i++) {
const issue: RedmineTypes.Issue = issues[i];
try { try {
this.redmineIssuesCacheWriterService.saveIssue(issue); this.logger.debug(
`Save issue #${issue.id} - ${JSON.stringify(issue)}`,
);
const response = await this.redmineIssuesCacheWriterService.saveIssue(
issue,
);
this.logger.debug(
`Save issue #${issue.id} response = ${JSON.stringify(response)}`,
);
} catch (ex) { } catch (ex) {
this.logger.error(`Saving issue error - ${ex}`, null, { issue: issue }); this.logger.error(`Saving issue error - ${ex}`, null, {
issue: issue,
});
}
} }
}); });
} }