Avoided null value in network_exception.dart when calling fromResponse

This commit is contained in:
Mohammad Salameh
2024-04-16 15:47:03 +03:00
parent 214c4bb749
commit fd03d29e93

View File

@ -32,7 +32,7 @@ class ServerFailure extends Failure {
// var document = parser.parse(dioError.response!.data.toString()); // var document = parser.parse(dioError.response!.data.toString());
// var message = document.body!.text; // var message = document.body!.text;
return ServerFailure.fromResponse(dioError.response!.statusCode!, return ServerFailure.fromResponse(dioError.response!.statusCode!,
dioError.response!.data['message']); dioError.response?.data['message'] ?? "Error");
} }
case DioExceptionType.cancel: case DioExceptionType.cancel:
return ServerFailure("The request to ApiServer was canceled"); return ServerFailure("The request to ApiServer was canceled");
@ -48,25 +48,25 @@ class ServerFailure extends Failure {
} }
} }
factory ServerFailure.fromResponse(int? statusCode, dynamic response) { factory ServerFailure.fromResponse(int? statusCode, dynamic responseMessage) {
switch (statusCode) { switch (statusCode) {
case 401: case 401:
case 403: case 403:
return ServerFailure(response); return ServerFailure(responseMessage);
case 400: case 400:
List<String> errors = []; List<String> errors = [];
if (response['message'] is List) { if (responseMessage is List) {
for (var error in response['message']) { for (var error in responseMessage) {
errors.add(error); errors.add(error);
} }
} else { } else {
errors.add(response['message']); return ServerFailure(responseMessage);
} }
return ServerFailure(errors.join('\n')); return ServerFailure(errors.join('\n'));
case 404: case 404:
return ServerFailure("Your request not found, Please try later!"); return ServerFailure("Your request not found, Please try later!");
case 500: case 500:
return ServerFailure(response); return ServerFailure(responseMessage);
default: default:
return ServerFailure("Opps there was an Error, Please try again!"); return ServerFailure("Opps there was an Error, Please try again!");
} }