29 lines
1.2 KiB
TypeScript
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 }),
|
|
);
|