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 会直接抛出错误,