From e04dadcd2f0519e73726e371799f979f48cf5e77 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Thu, 16 Apr 2020 17:43:49 +1000 Subject: [PATCH] Add better error handling for API --- lib/api.dart | 13 ++++++++++--- lib/main.dart | 16 ---------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/lib/api.dart b/lib/api.dart index 6d272520..b2d8eaeb 100644 --- a/lib/api.dart +++ b/lib/api.dart @@ -182,15 +182,22 @@ class InvenTreeAPI { var response = await get("").timeout(Duration(seconds: 10)).catchError((error) { if (error is SocketException) { - errorMessage = "Could not connect to server."; - print(errorMessage); - throw errorMessage; + print("Could not connect to server"); + return null; + } else if (error is TimeoutException) { + print("Server timeout"); + return null; } else { // Unknown error type, re-throw error + print("Unknown error: ${error.toString()}"); throw error; } }); + if (response == null) { + return false; + } + if (response.statusCode != 200) { print("Invalid status code: " + response.statusCode.toString()); return false; diff --git a/lib/main.dart b/lib/main.dart index a15fb541..991d2452 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -134,22 +134,6 @@ class _MyHomePageState extends State { onConnectFailure("Could not connect to server"); } - }).catchError((e) { - - String fault = "Connection error"; - - _serverConnection = false; - _serverStatusColor = Color.fromARGB(255, 250, 50, 50); - - _serverStatus = "Error connecting to $_serverAddress"; - - if (e is TimeoutException) { - fault = "Timeout: No response from server"; - } else { - fault = e.toString(); - } - - onConnectFailure(fault); }); // Update widget state