24 lines
734 B
TypeScript
24 lines
734 B
TypeScript
import { statisticsApi } from "@/entities/statistics/api/statistics-service";
|
|
import type {
|
|
ImrRequest,
|
|
ImrResponse,
|
|
rollbackStatusRequest,
|
|
} from "@/entities/statistics/model/statistics-interface";
|
|
|
|
/** 제출 직후 IMR 요청이 실패하면 검증 이전 상태로 롤백 */
|
|
export async function callImrServiceWithRollbackOnFailure(
|
|
imrParam: ImrRequest,
|
|
rollbackParam: rollbackStatusRequest,
|
|
): Promise<ImrResponse> {
|
|
try {
|
|
return await statisticsApi.callImrService(imrParam);
|
|
} catch (error) {
|
|
try {
|
|
await statisticsApi.rollbackStatus(rollbackParam);
|
|
} catch {
|
|
// 롤백 실패는 IMR 실패를 가리지 않음
|
|
}
|
|
throw error;
|
|
}
|
|
}
|