diff --git a/apps/st/src/components/statistics/verification/HbStatisticsVerification.tsx b/apps/st/src/components/statistics/verification/HbStatisticsVerification.tsx index 3a77801d3..183b85468 100644 --- a/apps/st/src/components/statistics/verification/HbStatisticsVerification.tsx +++ b/apps/st/src/components/statistics/verification/HbStatisticsVerification.tsx @@ -52,6 +52,8 @@ import { useAlertStore } from "@/shared/lib"; import { verificationTargetManagementApi } from "@/entities/statistics/api/verification-target-management-service"; import type { VerificationTargetCodeResponse } from "@/entities/statistics/model/verification-target-management-interface"; import { CodeSelect } from "@/entities/code"; +import type { AxiosError } from "axios"; +import type { ApiErrorResponse } from "@/shared/model"; type DateRangeValue = { from?: Date; @@ -244,7 +246,7 @@ const HbStatisticsVerification = () => { const analysisMutation = useMutation< AnalysisResponseDto, - Error, + AxiosError, AnalysisRequestPayload >({ mutationFn: async (payload) => analysisApi.analyze(payload), @@ -254,8 +256,11 @@ const HbStatisticsVerification = () => { queryKey: [ENDPOINT.STATVERIFY_SERVICE.ST_ANLS_MST], }); }, - onError: () => { - alert("검증 실행 중 오류가 발생했습니다."); + onError: (error) => { + alert( + error.response?.data?.message ?? + "검증 실행 중 오류가 발생했습니다.", + ); }, }); diff --git a/apps/st/src/shared/model/api-interface.ts b/apps/st/src/shared/model/api-interface.ts index 8218bfb0d..17707db3d 100644 --- a/apps/st/src/shared/model/api-interface.ts +++ b/apps/st/src/shared/model/api-interface.ts @@ -1,34 +1,42 @@ interface SortConfig { - empty: boolean; - sorted: boolean; - unsorted: boolean; + empty: boolean; + sorted: boolean; + unsorted: boolean; } interface PageableConfig { - sort: SortConfig; - offset: number; - pageNumber: number; - pageSize: number; - paged: boolean; - unpaged: boolean; + sort: SortConfig; + offset: number; + pageNumber: number; + pageSize: number; + paged: boolean; + unpaged: boolean; } export interface PageableList { - content: T[]; - pageable: PageableConfig; - sort: SortConfig; - totalPages: number; - totalElements: number; - number: number; - numberOfElements: number; - size: number; - first: boolean; - last: boolean; - empty: boolean; + content: T[]; + pageable: PageableConfig; + sort: SortConfig; + totalPages: number; + totalElements: number; + number: number; + numberOfElements: number; + size: number; + first: boolean; + last: boolean; + empty: boolean; } export interface PageableParams { - page?: number; - size?: number; - sort?: string; + page?: number; + size?: number; + sort?: string; +} + +export interface ApiErrorResponse { + timestamp: string; + message: string; + status: number; + code: string; + errors: unknown[]; }