From 90c5142603ff2f9ddd743022361dd630729db527 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Chyeonggkim=E2=80=9D?= <“hyeonggkim@smilegate.com”> Date: Mon, 8 Dec 2025 10:16:52 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EC=A0=90=EA=B2=80=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 --- app/pages/inspection/index.vue | 31 +++++++++++++++++--------- layers/middleware/init.route.global.ts | 3 +-- layers/middleware/inspection.ts | 4 ++-- layers/middleware/pageData.global.ts | 1 - layers/server/middleware/gameData.ts | 20 +++++++++++++++++ 5 files changed, 44 insertions(+), 15 deletions(-) diff --git a/app/pages/inspection/index.vue b/app/pages/inspection/index.vue index c18244f..aa262fc 100644 --- a/app/pages/inspection/index.vue +++ b/app/pages/inspection/index.vue @@ -52,6 +52,7 @@
@@ -138,16 +139,10 @@ import { globalDateFormat } from '@seed-next/date' import { useCheckGameStart } from '#layers/composables/useGameStart' const config = useRuntimeConfig() +const stoveApiUrl = config.public.stoveApiUrl as string + const dataResourcesUrl = config.public.dataResourcesUrl as string const multilingualFileName = 'STOVE_PUBTEMPLATE_homepage_brand_inspection.json' - -// const isClient = import.meta.client - -const inspectionStore = useInspectionStore() -const { webInspectionData } = storeToRefs(inspectionStore) -const gameDataStore = useGameDataStore() -const { gameData } = storeToRefs(gameDataStore) - // Multilingual const resultGetMultilingual = await useGetMultilingual({ baseApiUrl: dataResourcesUrl, @@ -159,6 +154,15 @@ const { tm, locale }: any = useI18n({ messages: Object(resultGetMultilingual?.value?.multilingual), }) +const loadingStore = useLoadingStore() +const { webInspectionData, getInspectionDataExternal } = useGetInspectionDataExternal() +const gameDataStore = useGameDataStore() +const { gameData } = storeToRefs(gameDataStore) +await getInspectionDataExternal({ + baseApiUrl: stoveApiUrl, + gameId: gameData.value.game_id, +}) + // locale에 따라 뒤에 KST 또는 UTC 추가 ko, en, zh-tw, ja // ko: (KST) // en: (UTC) @@ -172,8 +176,11 @@ const getLocaleTimezone = (localeType: string, region) => { const timezoneMap: Record = { ko: 'KST', - 'zh-tw': '台灣時間', + en: 'UTC', ja: 'JST', + 'zh-tw': '台灣時間', + 'zh-cn': 'CST', + th: 'ICT', } const timezone = timezoneMap[currentLocale] || 'KST' const defaultRegion = currentLocale === 'ko' ? 'KR' : '' @@ -261,10 +268,14 @@ const handleGameStart = () => { validateLauncher() } +onMounted(() => { + loadingStore.stopFullLoading() +}) + + definePageMeta({ middleware: ['inspection'], layout: 'only-stove', - showLoading: false, }) diff --git a/layers/middleware/init.route.global.ts b/layers/middleware/init.route.global.ts index 16464b1..f0d4ec8 100644 --- a/layers/middleware/init.route.global.ts +++ b/layers/middleware/init.route.global.ts @@ -56,8 +56,7 @@ export default defineNuxtRouteMiddleware(async (to, _from) => { // error 페이지는 API 호출하지 않음 if ( pageUrl === '/error' || - to.path.includes('/error') || - to.path.includes('/inspection') + to.path.includes('/error') ) { console.log('🚀 ~ init.route.global error 페이지는 API 호출하지 않음') showError( diff --git a/layers/middleware/inspection.ts b/layers/middleware/inspection.ts index 1943d13..16dc837 100644 --- a/layers/middleware/inspection.ts +++ b/layers/middleware/inspection.ts @@ -1,12 +1,12 @@ export default defineNuxtRouteMiddleware(async to => { try { - const { getPathAfterLanguage } = usePathResolver() //error 발생시에는 미들웨어 실행하지 않음 //error 객체 조회 if (!import.meta.client) { return } - + + const { getPathAfterLanguage } = usePathResolver() const pageUrl = getPathAfterLanguage(to.path) // error 페이지는 API 호출하지 않음 diff --git a/layers/middleware/pageData.global.ts b/layers/middleware/pageData.global.ts index f0c4b5b..ec2ef51 100644 --- a/layers/middleware/pageData.global.ts +++ b/layers/middleware/pageData.global.ts @@ -103,7 +103,6 @@ export default defineNuxtRouteMiddleware(async (to, _from) => { loadingStore.startFullLoading() const accessToken = csrGetAccessToken() - const headers = { Authorization: `Bearer ${accessToken}`, } diff --git a/layers/server/middleware/gameData.ts b/layers/server/middleware/gameData.ts index 1cba1be..80f0fc6 100644 --- a/layers/server/middleware/gameData.ts +++ b/layers/server/middleware/gameData.ts @@ -206,6 +206,25 @@ export default defineEventHandler(async event => { initDefaultLocale ) setFinalLocaleCookie(event, finalLocale, baseDomain) + + // 점검 페이지에서도 gameData를 가져와서 context에 설정 + try { + const queryParams: Record = { + game_domain: cleanHost || '', + lang_code: finalLocale, + } + const response = await $fetch(apiUrl, { + query: queryParams, + }) + + if (response?.code === 0 && 'value' in response) { + event.context.gameData = response.value + event.context.googleAnalyticsId = response.value?.ga_code + } + } catch (error) { + console.error('inspection path gameData load error:', error) + } + return } @@ -306,6 +325,7 @@ export default defineEventHandler(async event => { } ) inspectionData = inspectionResponse?.value?.inspection + console.log("🚀 ~ inspectionData:", inspectionData) cache.set(cacheKey, inspectionData) // 캐시에 저장 } }