48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import type {
|
|
getOperateResourcesParams,
|
|
OperateResourcesResponse,
|
|
OperateComponents,
|
|
} from '#layers/types/api/operateResources'
|
|
|
|
export const useOperateResources = () => {
|
|
/**
|
|
*
|
|
* @param params getOperateResourcesDataParams
|
|
* @returns OperateComponents | null
|
|
* @description 운영 리소스 데이터 조회
|
|
*/
|
|
const getOperateResources = async (
|
|
params: getOperateResourcesParams
|
|
): Promise<OperateComponents | null> => {
|
|
const { pageSeq, pageVer, pageVerTmplSeq, langCode, q, qc } = params
|
|
|
|
const runtimeConfig = useRuntimeConfig()
|
|
const stoveApiBaseUrl = runtimeConfig.public.stoveApiUrl
|
|
const apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/operateResources`
|
|
|
|
const queryParams: Record<string, string | number> = {
|
|
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 OperateResourcesResponse | null
|
|
|
|
if (response?.code === 0 && 'value' in response) {
|
|
return response.value
|
|
}
|
|
return null
|
|
}
|
|
|
|
return {
|
|
getOperateResources,
|
|
}
|
|
}
|