Files
web-temp/layers/composables/useResourcesData.ts
2025-09-23 20:37:33 +09:00

42 lines
1.1 KiB
TypeScript

import type {
GetResourcesDataParams,
ResourcesDataResponse,
ResourcesDataValue,
} from '#layers/types/api/resourcesData'
export const useResourcesData = () => {
const getResourcesData = async (
params: GetResourcesDataParams
): Promise<ResourcesDataValue | null> => {
const { pageSeq, pageVer, pageVerTmplSeq, langCode, q, qc } = params
const config = useRuntimeConfig()
const stoveApiBaseUrl = config.public.stoveApiUrl
const apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/resources`
const queryParams: Record<string, string> = {
page_seq: pageSeq,
page_ver: pageVer,
page_ver_tmpl_seq: pageVerTmplSeq,
lang_code: langCode,
q: q || '',
qc: qc || '',
_t: Date.now().toString(), // 캐시 무효화를 위한 타임스탬프
}
const response = (await commonFetch('GET', apiUrl, {
query: queryParams,
loading: true,
})) as ResourcesDataResponse | null
if (response?.code === 0 && 'value' in response) {
return response.value
}
return null
}
return {
getResourcesData,
}
}