From 88cb94576008ecb788c56e0074ea418786a5c5a9 Mon Sep 17 00:00:00 2001 From: Charles Date: Mon, 18 Dec 2023 12:51:57 -0500 Subject: [PATCH] [WIFI-11925] Fixed firmware upgrade result handling Signed-off-by: Charles --- package-lock.json | 10 ++--- package.json | 2 +- src/hooks/Network/Firmware.ts | 77 +++++++++++++++++++++++++++-------- 3 files changed, 65 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7593b26..a557a6f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ucentral-client", - "version": "3.0.0(2)", + "version": "3.0.0(4)", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ucentral-client", - "version": "3.0.0(2)", + "version": "3.0.0(4)", "license": "ISC", "dependencies": { "@chakra-ui/anatomy": "^2.1.1", @@ -10132,9 +10132,9 @@ } }, "node_modules/vite": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", - "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", diff --git a/package.json b/package.json index e301110..4def4d0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ucentral-client", - "version": "3.0.0(2)", + "version": "3.0.0(4)", "description": "", "private": true, "main": "index.tsx", diff --git a/src/hooks/Network/Firmware.ts b/src/hooks/Network/Firmware.ts index 6540d2a..9eb6fc3 100644 --- a/src/hooks/Network/Firmware.ts +++ b/src/hooks/Network/Firmware.ts @@ -70,25 +70,66 @@ export const useUpdateDeviceFirmware = ({ serialNumber, onClose }: { serialNumbe return useMutation( ({ keepRedirector, uri, signature }: { keepRedirector: boolean; uri: string; signature?: string }) => - axiosGw.post(`device/${serialNumber}/upgrade${signature ? `?FWsignature=${signature}` : ''}`, { - serialNumber, - when: 0, - keepRedirector, - uri, - signature, - }), + axiosGw + .post(`device/${serialNumber}/upgrade${signature ? `?FWsignature=${signature}` : ''}`, { + serialNumber, + when: 0, + keepRedirector, + uri, + signature, + }) + .then( + (response) => + response as { + data: { + errorCode: number; + errorText: string; + status: string; + results?: { + status?: { + error?: number; + resultCode?: number; + text?: string; + }; + }; + }; + }, + ), { - onSuccess: () => { - toast({ - id: `device-upgrade-success-${uuid()}`, - title: t('common.success'), - description: t('commands.firmware_upgrade_success'), - status: 'success', - duration: 5000, - isClosable: true, - position: 'top-right', - }); - onClose(); + onSuccess: ({ data }) => { + if (data.errorCode === 0) { + toast({ + id: `device-upgrade-success-${uuid()}`, + title: t('common.success'), + description: t('commands.firmware_upgrade_success'), + status: 'success', + duration: 5000, + isClosable: true, + position: 'top-right', + }); + onClose(); + } else if (data.errorCode === 1) { + toast({ + id: `device-upgrade-warning-${uuid()}`, + title: 'Warning', + description: `${data?.errorText ?? 'Unknown Warning'}`, + status: 'warning', + duration: 5000, + isClosable: true, + position: 'top-right', + }); + onClose(); + } else { + toast({ + id: `device-upgrade-error-${uuid()}`, + title: t('common.error'), + description: `${data?.errorText ?? 'Unknown Error'} (Code ${data.errorCode})`, + status: 'error', + duration: 5000, + isClosable: true, + position: 'top-right', + }); + } }, onError: (e: AxiosError) => { toast({