Files
frontend/apps/sn/app/components/lib/common/apiHelpers.ts
T

38 lines
1.3 KiB
TypeScript

/**
* 📄 API Helpers
* 공통 코드 cs-service API 호출 유틸리티
*
* - 검색 데이터 조회 및 파라미터 처리
* - 상위 코드로 하위 코드 조회 기능
* - URL 파라미터 생성 및 필터링
* - 데이터 페이징 및 총 개수 반환
* - Axios 기반 HTTP 요청 처리
* - 타입 안전성 보장을 위한 제네릭 활용
*
* 🔗 사용 API
* - 하위코드페이지 캐시 목록 조회: GET /api/v1/code/cache/{upCd} (cms-service)
*/
import { getData } from "../api";
export const searchData = async<T extends Record<string, any>>(url: string, paramObj: T) => {
const params = new URLSearchParams(
Object.entries(paramObj)
.filter(([_, value]) => value !== undefined && value !== '') // 값이 있는 항목만 포함
.reduce((acc, [key, value]) => {
acc[key] = String(value);
return acc;
}, {} as Record<string, string>)
);
const data = await getData(`${url}?${params.toString()}`);
return data && { data: data.content, total: data.totalElements }
}
// 상위코드로 하위코드 조회
export const searchCmmnCd = async (upCd: string) => {
const data = await getData(`/cms-service/api/v1/code/cache/${upCd}`);
const filteredData = data.map((item: any) => ({
lwpoCd: item.lwpoCd,
lwpoCdNm: item.lwpoCdNm,
}));
return filteredData;
}