mirror of
https://github.com/dadosfera/maestro.git
synced 2026-09-12 16:44:49 +00:00
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { Inject, Injectable } from '@nestjs/common';
|
|
import axios, { AxiosInstance } from 'axios';
|
|
import { LanguageEnum } from 'src/utils/languages.enum';
|
|
import { ReleaseNoteDTO } from './dto/release_note.dto';
|
|
import DadosferaLogger from '@dadosfera/dadosfera-logs';
|
|
|
|
@Injectable()
|
|
export class ReleaseNoteService {
|
|
client: AxiosInstance;
|
|
logger: DadosferaLogger;
|
|
|
|
constructor(
|
|
@Inject(DadosferaLogger)
|
|
dadosferaLogger: DadosferaLogger,
|
|
) {
|
|
this.logger = dadosferaLogger.logger;
|
|
this.client = axios.create({
|
|
baseURL: process.env.FIREBASE_BASE_URL,
|
|
});
|
|
}
|
|
|
|
async getLatestReleaseNote(lang: LanguageEnum) {
|
|
try {
|
|
const lng = lang.split('-');
|
|
const language = lng[0] + '-' + lng[1].toUpperCase();
|
|
|
|
const endpoint = `/release_note/${language}.json`;
|
|
const {
|
|
data,
|
|
status,
|
|
config
|
|
} = await this.client.get<ReleaseNoteDTO>(endpoint)
|
|
this.logger.info(`Fetched release note for language: ${lang} with status: ${status}`);
|
|
this.logger.info(`Request URL: ${config.baseURL}/${config.url}`);
|
|
|
|
return data;
|
|
} catch (error) {
|
|
this.logger.error(`Error fetching release note: ${error.message}`);
|
|
|
|
if (axios.isAxiosError(error)) {
|
|
this.logger.error(`Axios error details: ${error.toJSON()}`);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|