From 31ed4c6a7b9d295563f5e05462a33ddaa65e2fec Mon Sep 17 00:00:00 2001 From: Oliver Date: Mon, 19 Jul 2021 10:41:34 +1000 Subject: [PATCH] Handle error code 50x --- lib/api.dart | 42 +++++++++++++++++++++++------------------ lib/l10n | 2 +- lib/widget/dialogs.dart | 18 ++++++++++++++++++ 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/lib/api.dart b/lib/api.dart index 5266b2f4..ac629848 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -653,26 +653,32 @@ class InvenTreeAPI { HttpClientResponse? _response = await request.close().timeout(Duration(seconds: 10)); response.statusCode = _response.statusCode; - response.data = await responseToJson(_response) ?? {}; - // Expected status code not returned - if ((statusCode != null) && (statusCode != _response.statusCode)) { - showStatusCodeError(_response.statusCode); - } - - // Report any server errors + // If the server returns a server error code, alert the user if (_response.statusCode >= 500) { - sentryReportMessage( - "Server error", - context: { - "url": request.uri.toString(), - "method": request.method, - "statusCode": _response.statusCode.toString(), - "requestHeaders": request.headers.toString(), - "responseHeaders": _response.headers.toString(), - "responseData": response.data.toString(), - } - ); + showStatusCodeError(_response.statusCode); + } else { + response.data = await responseToJson(_response) ?? {}; + + // Expected status code not returned + if ((statusCode != null) && (statusCode != _response.statusCode)) { + showStatusCodeError(_response.statusCode); + } + + // Report any server errors + if (_response.statusCode >= 500) { + sentryReportMessage( + "Server error", + context: { + "url": request.uri.toString(), + "method": request.method, + "statusCode": _response.statusCode.toString(), + "requestHeaders": request.headers.toString(), + "responseHeaders": _response.headers.toString(), + "responseData": response.data.toString(), + } + ); + } } } on SocketException catch (error) { diff --git a/lib/l10n b/lib/l10n index 9cc07cdb..84f6ed3f 160000 --- a/lib/l10n +++ b/lib/l10n @@ -1 +1 @@ -Subproject commit 9cc07cdb0ec0012abcec827fc776d7c5473bb75e +Subproject commit 84f6ed3faf63cbf371016e134196400e5f822759 diff --git a/lib/widget/dialogs.dart b/lib/widget/dialogs.dart index 4490329e..9876b641 100644 --- a/lib/widget/dialogs.dart +++ b/lib/widget/dialogs.dart @@ -152,6 +152,24 @@ Future showStatusCodeError(int status, {int expected = 200}) async { case 429: msg = L10().response429; break; + case 500: + msg = L10().response500; + break; + case 501: + msg = L10().response501; + break; + case 502: + msg = L10().response502; + break; + case 503: + msg = L10().response503; + break; + case 504: + msg = L10().response504; + break; + case 505: + msg = L10().response505; + break; default: break; }