feat: 개별 다국어파일 호출 composables 추가
This commit is contained in:
59
layers/composables/useGetMultilingual.ts
Normal file
59
layers/composables/useGetMultilingual.ts
Normal 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
|
||||
}
|
||||
58
layers/types/MultilingualType.ts
Normal file
58
layers/types/MultilingualType.ts
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user