From c3692de19eeced3063047c81d6feb5b214d6ff2d Mon Sep 17 00:00:00 2001 From: yangsy Date: Thu, 8 Jan 2026 15:52:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BD=93API=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AE=9A=E4=B9=89=E4=B8=AD=E6=B2=A1=E6=9C=89=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E6=95=B0=E6=8D=AE=E6=97=B6=E4=BC=9A=E6=84=8F=E5=A4=96?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=E7=A9=BA=E6=95=B0=E6=8D=AE=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/request/biz/constant/reset-monitor-shedule.ts | 4 ++-- src/apis/request/biz/icmp/verify.ts | 4 ++-- src/apis/request/biz/other/ndm-security-box.ts | 4 ++-- src/apis/request/biz/other/ndm-switch.ts | 4 ++-- src/apis/request/biz/storage/ndm-nvr.ts | 6 +++--- src/apis/request/biz/video/ndm-decoder.ts | 4 ++-- src/apis/request/biz/video/ndm-media-server.ts | 4 ++-- src/apis/request/biz/video/ndm-video-server.ts | 4 ++-- src/utils/http-client.ts | 10 ++++++++++ 9 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/apis/request/biz/constant/reset-monitor-shedule.ts b/src/apis/request/biz/constant/reset-monitor-shedule.ts index 981b6fe..80d1f5f 100644 --- a/src/apis/request/biz/constant/reset-monitor-shedule.ts +++ b/src/apis/request/biz/constant/reset-monitor-shedule.ts @@ -1,5 +1,5 @@ import { ndmClient, userClient, type Station } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapVoidResponse } from '@/utils'; export const resetMonitorScheduleApi = async (options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -7,5 +7,5 @@ export const resetMonitorScheduleApi = async (options?: { stationCode?: Station[ const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmConstant/anyTenant/resetMonitorSchedule`; const resp = await client.get(endpoint, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/icmp/verify.ts b/src/apis/request/biz/icmp/verify.ts index 30aa3d1..537db66 100644 --- a/src/apis/request/biz/icmp/verify.ts +++ b/src/apis/request/biz/icmp/verify.ts @@ -1,5 +1,5 @@ import { ndmClient, userClient, type Station } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapVoidResponse } from '@/utils'; export const verifyApi = async (options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -7,5 +7,5 @@ export const verifyApi = async (options?: { stationCode?: Station['code']; signa const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmKeepAlive/verify`; const resp = await client.post(endpoint, {}, { retRaw: true, timeout: 5000, signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/other/ndm-security-box.ts b/src/apis/request/biz/other/ndm-security-box.ts index 896c665..d437039 100644 --- a/src/apis/request/biz/other/ndm-security-box.ts +++ b/src/apis/request/biz/other/ndm-security-box.ts @@ -10,7 +10,7 @@ import { type PageResult, type Station, } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const pageSecurityBoxApi = async (pageQuery: PageParams, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -90,7 +90,7 @@ export const probeSecurityBoxApi = async (ids: string[], options?: { stationCode const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmSecurityBox/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; export const turnCitcuitStatusApi = async (ipAddress: string, circuitIndex: number, status: number, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { diff --git a/src/apis/request/biz/other/ndm-switch.ts b/src/apis/request/biz/other/ndm-switch.ts index 9e39491..045865b 100644 --- a/src/apis/request/biz/other/ndm-switch.ts +++ b/src/apis/request/biz/other/ndm-switch.ts @@ -10,7 +10,7 @@ import { type PageResult, type Station, } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const pageSwitchApi = async (pageQuery: PageParams, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -90,5 +90,5 @@ export const probeSwitchApi = async (ids: string[], options?: { stationCode?: St const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmSwitch/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/storage/ndm-nvr.ts b/src/apis/request/biz/storage/ndm-nvr.ts index e7b36f2..b4a3800 100644 --- a/src/apis/request/biz/storage/ndm-nvr.ts +++ b/src/apis/request/biz/storage/ndm-nvr.ts @@ -1,5 +1,5 @@ import { ndmClient, userClient, type ImportMsg, type NdmNvrPageQuery, type NdmNvrResultVO, type NdmNvrSaveVO, type NdmNvrUpdateVO, type PageParams, type PageResult, type Station } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const pageNvrPageApi = async (pageQuery: PageParams, options?: { stationCode: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -79,7 +79,7 @@ export const probeNvrApi = async (ids: string[], options?: { stationCode?: Stati const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmNvr/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; export const syncNvrChannelsApi = async (options?: { stationCode?: string; signal?: AbortSignal }) => { @@ -88,5 +88,5 @@ export const syncNvrChannelsApi = async (options?: { stationCode?: string; signa const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmNvr/syncNvrChannels`; const resp = await client.get(endpoint, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/video/ndm-decoder.ts b/src/apis/request/biz/video/ndm-decoder.ts index dfdab55..c12a862 100644 --- a/src/apis/request/biz/video/ndm-decoder.ts +++ b/src/apis/request/biz/video/ndm-decoder.ts @@ -10,7 +10,7 @@ import { type PageResult, type Station, } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const pageDecoderApi = async (pageQuery: PageParams, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -90,5 +90,5 @@ export const probeDecoderApi = async (ids: string[], options?: { stationCode?: S const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmDecoder/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/video/ndm-media-server.ts b/src/apis/request/biz/video/ndm-media-server.ts index 7329589..a4557a4 100644 --- a/src/apis/request/biz/video/ndm-media-server.ts +++ b/src/apis/request/biz/video/ndm-media-server.ts @@ -10,7 +10,7 @@ import { type PageResult, type Station, } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const postNdmMediaServerPage = async (pageQuery: PageParams, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -90,5 +90,5 @@ export const probeMediaServerApi = async (ids: string[], options?: { stationCode const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmMediaServer/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/apis/request/biz/video/ndm-video-server.ts b/src/apis/request/biz/video/ndm-video-server.ts index da57f1b..588af46 100644 --- a/src/apis/request/biz/video/ndm-video-server.ts +++ b/src/apis/request/biz/video/ndm-video-server.ts @@ -10,7 +10,7 @@ import { type PageResult, type Station, } from '@/apis'; -import { unwrapResponse } from '@/utils'; +import { unwrapResponse, unwrapVoidResponse } from '@/utils'; export const pageVideoServerApi = async (pageQuery: PageParams, options?: { stationCode?: Station['code']; signal?: AbortSignal }) => { const { stationCode, signal } = options ?? {}; @@ -90,5 +90,5 @@ export const probeVideoServerApi = async (ids: string[], options?: { stationCode const prefix = stationCode ? `/${stationCode}` : ''; const endpoint = `${prefix}/api/ndm/ndmVideoServer/probeByIds`; const resp = await client.post(endpoint, ids, { signal }); - unwrapResponse(resp); + unwrapVoidResponse(resp); }; diff --git a/src/utils/http-client.ts b/src/utils/http-client.ts index dfc344b..cd64dae 100644 --- a/src/utils/http-client.ts +++ b/src/utils/http-client.ts @@ -136,6 +136,16 @@ export const unwrapResponse = (resp: HttpResponse) => { return data; }; +// 针对没有数据的响应,直接判断是否存在错误 +export const unwrapVoidResponse = (resp: HttpResponse) => { + const [err, , result] = resp; + if (err) throw err; + if (result) { + const { isSuccess, path, msg, errorMsg } = result; + if (!isSuccess) throw new Error(`${path ? `${path}: ` : ''}${msg || errorMsg || '请求失败'}`); + } +}; + // 从错误中解析出错误信息 export const parseErrorFeedback = (error: Error) => { // 当发生 http 错误时,unwrapResponse 会直接抛出错误,