From e17bb65a355874c2764e33d1e73648f4dfe50d48 Mon Sep 17 00:00:00 2001 From: nidal bakir Date: Sat, 9 Jul 2022 11:54:25 +0300 Subject: [PATCH 1/3] fix bug#774: null is not a subtype of String --- .../lib/src/network/parse_dio_client.dart | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/dart/lib/src/network/parse_dio_client.dart b/packages/dart/lib/src/network/parse_dio_client.dart index a28483155..55628e19a 100644 --- a/packages/dart/lib/src/network/parse_dio_client.dart +++ b/packages/dart/lib/src/network/parse_dio_client.dart @@ -31,7 +31,9 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } @@ -51,7 +53,9 @@ class ParseDioClient extends ParseClient { bytes: dioResponse.data, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkByteResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } @@ -68,7 +72,9 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } @@ -85,7 +91,9 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } @@ -105,7 +113,9 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } @@ -121,7 +131,9 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data, statusCode: error.response!.statusCode!); + data: error.response?.data ?? 'NetworkError', + statusCode: error.response!.statusCode!, + ); } } } From cad42c73b99f890cf6ff0da45ee87897443e21ef Mon Sep 17 00:00:00 2001 From: nidal bakir Date: Sat, 9 Jul 2022 15:34:16 +0300 Subject: [PATCH 2/3] extract fallbackErrorData geter in case of null data error response from dio --- .../dart/lib/src/network/parse_dio_client.dart | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/packages/dart/lib/src/network/parse_dio_client.dart b/packages/dart/lib/src/network/parse_dio_client.dart index 55628e19a..b10ea7870 100644 --- a/packages/dart/lib/src/network/parse_dio_client.dart +++ b/packages/dart/lib/src/network/parse_dio_client.dart @@ -31,7 +31,7 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } @@ -53,7 +53,7 @@ class ParseDioClient extends ParseClient { bytes: dioResponse.data, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkByteResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } @@ -72,7 +72,7 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } @@ -91,7 +91,7 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } @@ -113,7 +113,7 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } @@ -131,11 +131,13 @@ class ParseDioClient extends ParseClient { data: dioResponse.data!, statusCode: dioResponse.statusCode!); } on dio.DioError catch (error) { return ParseNetworkResponse( - data: error.response?.data ?? 'NetworkError', + data: error.response?.data ?? _fallbackErrorData, statusCode: error.response!.statusCode!, ); } } + + String get _fallbackErrorData => '{$keyError:NetworkError}'; } /// Creates a custom version of HTTP Client that has Parse Data Preset From 2b3b05d4a738a9502cb1da567dce1eb2a7a73aaa Mon Sep 17 00:00:00 2001 From: nidal bakir Date: Sat, 30 Jul 2022 01:32:54 +0300 Subject: [PATCH 3/3] fix json format, Add quotation mark to make sure the dart will parse the values as String when decoding it. --- packages/dart/lib/src/network/parse_dio_client.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/dart/lib/src/network/parse_dio_client.dart b/packages/dart/lib/src/network/parse_dio_client.dart index b10ea7870..983f65f91 100644 --- a/packages/dart/lib/src/network/parse_dio_client.dart +++ b/packages/dart/lib/src/network/parse_dio_client.dart @@ -137,7 +137,7 @@ class ParseDioClient extends ParseClient { } } - String get _fallbackErrorData => '{$keyError:NetworkError}'; + String get _fallbackErrorData => '{"$keyError":"NetworkError"}'; } /// Creates a custom version of HTTP Client that has Parse Data Preset