| 12345678910111213141516171819202122232425262728293031323334 |
- import type { VueI18n } from "vue-i18n";
- import ApiRequestService from "./apiRequestService";
- import UrlUtils from "~/services/utils/urlUtils";
- import HydraNormalizer from "~/services/data/normalizer/hydraNormalizer";
- import type { Enum } from "~/types/data.d";
- 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<Enum> {
- 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;
|