From 283b440409f3f8cc6352efbed66756d297d05eed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chyeonggkim=E2=80=9D?= <“hyeonggkim@smilegate.com”> Date: Fri, 24 Oct 2025 21:23:18 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20env=20=EC=9D=B8=ED=84=B0=EB=84=90AP?= =?UTF-8?q?I=20=EC=B6=94=EA=B0=80,=20=ED=91=B8=ED=84=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.dev | 1 + .env.live | 1 + .env.qa | 1 + .env.sandbox | 1 + layers/components/layouts/Footer.vue | 316 ++++++++++++--------------- layers/server/middleware/gameData.ts | 4 +- nuxt.config.ts | 1 + 7 files changed, 152 insertions(+), 173 deletions(-) diff --git a/.env.dev b/.env.dev index f3dd0cb..902285f 100644 --- a/.env.dev +++ b/.env.dev @@ -7,6 +7,7 @@ STATIC_URL='https://static-pubcomm.gate8.com' # STOVE ############################################################################# # STOVE - API Url STOVE_API_URL=https://api-dev.onstove.com +STOVE_API_URL_SERVERL=https://i-api-dev.onstove.com STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB diff --git a/.env.live b/.env.live index 36ba550..f6ea327 100644 --- a/.env.live +++ b/.env.live @@ -7,6 +7,7 @@ STATIC_URL='https://static-pubcomm.onstove.com' # STOVE ############################################################################# # STOVE - API Url STOVE_API_URL=https://api.onstove.com +STOVE_API_URL_SERVERL=https://i-api.onstove.com STOVE_M_API_URL=https://maintenance.onstove.com # STOVE - GNB diff --git a/.env.qa b/.env.qa index 2f9d332..4a586e2 100644 --- a/.env.qa +++ b/.env.qa @@ -7,6 +7,7 @@ STATIC_URL='https://static-pubcomm.gate8.com' # STOVE ############################################################################# # STOVE - API Url STOVE_API_URL=https://api.gate8.com +STOVE_API_URL_SERVERL=https://i-api.gate8.com STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB diff --git a/.env.sandbox b/.env.sandbox index a1126db..baf4b74 100644 --- a/.env.sandbox +++ b/.env.sandbox @@ -7,6 +7,7 @@ STATIC_URL='https://static-pubcomm.gate8.com' # STOVE ############################################################################# # STOVE - API Url STOVE_API_URL=https://api.gate8.com +STOVE_API_URL_SERVERL=https://i-api.gate8.com STOVE_M_API_URL=https://maintenance.gate8.com # STOVE - GNB diff --git a/layers/components/layouts/Footer.vue b/layers/components/layouts/Footer.vue index d822bad..51c4c30 100644 --- a/layers/components/layouts/Footer.vue +++ b/layers/components/layouts/Footer.vue @@ -1,149 +1,133 @@ diff --git a/layers/components/atoms/icons/TopLine.vue b/layers/components/atoms/icons/TopLine.vue deleted file mode 100644 index b3b7a6e..0000000 --- a/layers/components/atoms/icons/TopLine.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/layers/components/blocks/UtileContainer.vue b/layers/components/blocks/UtileContainer.vue index 2c78430..86a3fde 100644 --- a/layers/components/blocks/UtileContainer.vue +++ b/layers/components/blocks/UtileContainer.vue @@ -24,7 +24,7 @@ const pinToParent = computed(() => { diff --git a/layers/types/api/gameData.ts b/layers/types/api/gameData.ts index 7f9d0de..140c940 100644 --- a/layers/types/api/gameData.ts +++ b/layers/types/api/gameData.ts @@ -91,13 +91,13 @@ export interface GameDataSnsItem { // SNS 설정 타입 export interface GameDataSns { - kakao: GameDataSnsItem - twitter: GameDataSnsItem - discord: GameDataSnsItem - youtube: GameDataSnsItem - instagram: GameDataSnsItem - facebook: GameDataSnsItem - tiktok: GameDataSnsItem + kakao?: GameDataSnsItem + twitter?: GameDataSnsItem + discord?: GameDataSnsItem + youtube?: GameDataSnsItem + instagram?: GameDataSnsItem + facebook?: GameDataSnsItem + tiktok?: GameDataSnsItem } // 공통 이미지 그룹 타입 From e05aac7622414ad3444670d2dbed21a04239d70b Mon Sep 17 00:00:00 2001 From: maneokc Date: Tue, 28 Oct 2025 17:15:54 +0900 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=EA=B0=9C=EB=B3=84=20=EB=8B=A4?= =?UTF-8?q?=EA=B5=AD=EC=96=B4=ED=8C=8C=EC=9D=BC=20=ED=98=B8=EC=B6=9C=20com?= =?UTF-8?q?posables=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- layers/composables/useGetMultilingual.ts | 59 ++++++++++++++++++++++++ layers/types/MultilingualType.ts | 58 +++++++++++++++++++++++ 2 files changed, 117 insertions(+) create mode 100644 layers/composables/useGetMultilingual.ts create mode 100644 layers/types/MultilingualType.ts 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, +}