Добавлен вывод 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 { RedmineIssueData } from '../models/RedmineIssueData';
import { Injectable } from '@nestjs/common';
import { Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
@Injectable()
export class RedmineDataLoader {
urlPrefix: string;
private logger = new Logger(RedmineDataLoader.name);
constructor(private configService: ConfigService) {
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));
return Promise.all(promises);
}
async loadIssue(issueNumber: number): Promise<RedmineIssueData> {
async loadIssue(issueNumber: number): Promise<RedmineIssueData | null> {
const url = this.getUrl(issueNumber);
const resp = await axios.get(url);
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;
}
this.logger.debug(
`Loaded issue, issueNumber = ${issueNumber}, subject = ${resp.data.issue.subject}`,
);
return resp.data.issue;
}