42 lines
1.1 KiB
TypeScript
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,
|
|
}
|
|
}
|