From e54bdb4c4685e3e7d18ce4c4a251cf28d12800ed Mon Sep 17 00:00:00 2001 From: alannnc Date: Fri, 14 Oct 2022 18:24:57 -0600 Subject: [PATCH] Custom zoom response handler (#5017) --- .../zoomvideo/lib/VideoApiAdapter.ts | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts b/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts index 79119124d2..92a5e4229c 100644 --- a/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts +++ b/packages/app-store/zoomvideo/lib/VideoApiAdapter.ts @@ -85,7 +85,8 @@ const zoomAuth = (credential: Credential) => { grant_type: "refresh_token", }), }); - const responseBody = await handleErrorsJson(response); + + const responseBody = await handleZoomResponse(response); // We check the if the new credentials matches the expected response structure const parsedToken = zoomRefreshedTokenSchema.safeParse(responseBody); @@ -223,15 +224,15 @@ const ZoomVideoApiAdapter = (credential: Credential): VideoApiAdapter => { const fetchZoomApi = async (endpoint: string, options?: RequestInit) => { const auth = zoomAuth(credential); const accessToken = await auth.getToken(); - const responseBody = await fetch(`https://api.zoom.us/v2/${endpoint}`, { + const response = await fetch(`https://api.zoom.us/v2/${endpoint}`, { method: "GET", ...options, headers: { Authorization: "Bearer " + accessToken, ...options?.headers, }, - }).then(handleErrorsJson); - + }); + const responseBody = await handleErrorsJson(response); return responseBody; }; @@ -304,4 +305,17 @@ const ZoomVideoApiAdapter = (credential: Credential): VideoApiAdapter => { }; }; +const handleZoomResponse = async (response: Response) => { + if (response.headers.get("content-encoding") === "gzip") { + const responseString = await response.text(); + return JSON.parse(responseString); + } + if (!response.ok && response.status < 200 && response.status >= 300) { + response.json().then(console.log); + throw Error(response.statusText); + } + + return response.json(); +}; + export default ZoomVideoApiAdapter;