feat: 개별 다국어파일 호출 composables 추가

This commit is contained in:
maneokc
2025-10-28 17:15:54 +09:00
parent 24a934576c
commit e05aac7622
2 changed files with 117 additions and 0 deletions

View File

@@ -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<string, any> = (await commonFetch('GET', url)) as {
gnb?: object[]
}
if (data != null) {
// locale 소문자 처리
const lowerCasedResult: Record<string, any> = {}
Object.keys(data).forEach(key => {
lowerCasedResult[key.toLowerCase()] = data[key]
})
data = lowerCasedResult
res = {
code: 0,
message: 'OK',
value: {
multilingual: (data as Map<string, object>) || {},
},
}
} 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
}

View File

@@ -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,
}