diff --git a/layers/composables/useGetMultilingual.ts b/layers/composables/useGetMultilingual.ts new file mode 100644 index 0000000..4de5d8b --- /dev/null +++ b/layers/composables/useGetMultilingual.ts @@ -0,0 +1,59 @@ +import type { + ReqGetMultilingual, + ResGetMultilingual, +} from '#layers/types/MultilingualType' + +/** + * 공통 - 다국어 조회 + * + * @param {ReqGetMultilingual} req + */ +export const useGetMultilingual = async (req: ReqGetMultilingual) => { + let res: ResGetMultilingual + try { + const baseApiUrl = req.baseApiUrl ?? '' + const fileName = req.fileName ?? '' + const timestamp = new Date().getTime() + const serviceType = 'multilingual' + const url = `${baseApiUrl}/${serviceType}/${fileName}?${timestamp}` + + let data: Record = (await commonFetch('GET', url)) as { + gnb?: object[] + } + + if (data != null) { + // locale 소문자 처리 + const lowerCasedResult: Record = {} + Object.keys(data).forEach(key => { + lowerCasedResult[key.toLowerCase()] = data[key] + }) + data = lowerCasedResult + + res = { + code: 0, + message: 'OK', + value: { + multilingual: (data as Map) || {}, + }, + } + } else { + res = { + code: 404, + message: 'Not Found', + value: { + multilingual: {}, + }, + } + } + } catch (e) { + console.error('[Exception] useGetDataResources.useGetMultilingual: ', e) + res = { + code: 500, + message: 'error', + value: { + multilingual: {}, + }, + } + } + return res +} diff --git a/layers/types/MultilingualType.ts b/layers/types/MultilingualType.ts new file mode 100644 index 0000000..504a5f0 --- /dev/null +++ b/layers/types/MultilingualType.ts @@ -0,0 +1,58 @@ +interface MultilingualMetaType { + gameId: string + metaNo: number + metaType?: string + metaCode?: string + metaValue?: number + metaName?: string + metaOption?: string + metaDesc?: string + refMetaNo?: number + sort?: number + status?: boolean +} + +interface MultilingualCategoryType { + transCategory: string + multilingualNo: number + startDate: Date + endDate: Date + title?: string + description?: string + status: boolean + categoryType?: MultilingualMetaType + categoryVersion?: MultilingualMetaType + sort: number +} + +interface MultilingualType { + multilingualNo: number + gameId: string + transCategory: string + transCode: string + designFont: boolean + sort: number +} + +// [API] Req / Res ----- +interface ReqGetMultilingual { + baseApiUrl: string + fileName?: string +} + +interface ResGetMultilingual { + code?: number + message?: string + value: { + multilingual?: object + } +} + +export type { + MultilingualMetaType, + MultilingualCategoryType, + MultilingualType, + // Api Req / Res ----- + ReqGetMultilingual, + ResGetMultilingual, +}