Добавлен вывод debug-логов

This commit is contained in:
Pavel Gnedov 2022-05-27 11:24:31 +07:00
parent f5b02ab184
commit 442e11c419

View file

@ -1,28 +1,35 @@
import axios from 'axios'; import axios from 'axios';
import { RedmineIssueData } from '../models/RedmineIssueData'; import { RedmineIssueData } from '../models/RedmineIssueData';
import { Injectable } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config'; import { ConfigService } from '@nestjs/config';
@Injectable() @Injectable()
export class RedmineDataLoader { export class RedmineDataLoader {
urlPrefix: string; urlPrefix: string;
private logger = new Logger(RedmineDataLoader.name);
constructor(private configService: ConfigService) { constructor(private configService: ConfigService) {
this.urlPrefix = this.configService.get<string>('redmineUrlPrefix'); this.urlPrefix = this.configService.get<string>('redmineUrlPrefix');
} }
async loadIssues(issues: number[]): Promise<RedmineIssueData[]> { async loadIssues(issues: number[]): Promise<(RedmineIssueData | null)[]> {
const promises = issues.map((issue) => this.loadIssue(issue)); const promises = issues.map((issue) => this.loadIssue(issue));
return Promise.all(promises); return Promise.all(promises);
} }
async loadIssue(issueNumber: number): Promise<RedmineIssueData> { async loadIssue(issueNumber: number): Promise<RedmineIssueData | null> {
const url = this.getUrl(issueNumber); const url = this.getUrl(issueNumber);
const resp = await axios.get(url); const resp = await axios.get(url);
if (!resp || !resp.data || !resp.data.issue) { if (!resp || !resp.data || !resp.data.issue) {
console.error('Failed to load data from redmine'); this.logger.error(
`Failed to load data for from redmine, issueNumber = ${issueNumber}`,
);
return null; return null;
} }
this.logger.debug(
`Loaded issue, issueNumber = ${issueNumber}, subject = ${resp.data.issue.subject}`,
);
return resp.data.issue; return resp.data.issue;
} }