Files
frontend/apps/sn/src/features/cfmtnBgt/api/cfmtn-bgt-api.ts
T

29 lines
1.2 KiB
TypeScript

import { getData, postRawJson } from "@/components/lib/api";
import type {
CfmtnBgtCode,
CfmtnBgtPage,
CfmtnBgtRegistrationResult,
} from "../model/cfmtn-bgt-types";
/** 공통 응답 래퍼가 있으면 실제 data 값을 반환한다. */
const unwrap = <T>(v: unknown): T =>
v && typeof v === "object" && "data" in v
? (v as { data: T }).data
: (v as T);
/** 선택 연도의 최종확정예산 사업분류 코드를 조회한다. */
export const getCfmtnBgtCodes = (year: string) =>
getData(
`v1/onsemiro/cfmtnBgt/code?year=${encodeURIComponent(year)}`,
) as Promise<CfmtnBgtCode[]>;
/** 검색조건과 페이지 정보로 최종확정예산사업 목록을 조회한다. */
export const getCfmtnBgtPage = (params: URLSearchParams) => {
console.log("getCfmtnBgtPage 호출" + params);
return getData(`v1/onsemiro/cfmtnBgt?${params}`) as Promise<CfmtnBgtPage>;
}
/** 선택한 최종확정예산사업을 부모 화면의 사업구분으로 일괄등록한다. */
export const registerCfmtnBgt = async (bizSe: string, seqNos: number[]) =>
unwrap<CfmtnBgtRegistrationResult>(
await postRawJson("v1/obsltPplBiz/onsemiro/cfmtnBgt", { bizSe, seqNos }),
);