import ApiRequestService from "./apiRequestService"; import UrlUtils from "~/services/utils/urlUtils"; import HydraNormalizer from "~/services/data/normalizer/hydraNormalizer"; import type {Enum} from "~/types/data.d"; import type {VueI18n} from "vue-i18n"; class EnumManager { private apiRequestService: ApiRequestService; private i18n: VueI18n; public constructor(apiRequestService: ApiRequestService, i18n: VueI18n) { this.apiRequestService = apiRequestService this.i18n = i18n } public async fetch(enumName: string): Promise { const url = UrlUtils.join('api', 'enum', enumName) const response = await this.apiRequestService.get(url) const { data } = HydraNormalizer.denormalize(response) const enum_: Enum = [] for (const key in data.items) { if (data.items.hasOwnProperty(key)) { enum_.push({value: key, label: this.i18n.t(data.items[key])}) } } return enum_ } } export default EnumManager