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(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()}`); } } } }