showServerError function

void showServerError(
  1. BuildContext context, {
  2. dynamic error,
})

Implementation

void showServerError(BuildContext context, {error}) {
  if (error is DioError) {
    if (error.response?.statusCode == 400) {
      var _map = error.response?.data;
      Map<String, dynamic> map;
      if (_map != null) {
        try {
          if (_map is String) {
            map = jsonDecode(_map);
          } else {
            map = _map;
          }

          var message = ErrorMessage.fromJson(map);
          _showMessage(context, message);
          return;
        } catch (error) {
          // print("got error while parsing $error");
        }
      }
    }

    switch (error.type) {
      case DioErrorType.cancel:
        /**
       * Ignore this error.
       */
        break;
      case DioErrorType.connectTimeout:
      case DioErrorType.sendTimeout:
      case DioErrorType.receiveTimeout:
        _showTimedOut(context);
        break;
      case DioErrorType.response:
        _showServerError(
          context,
          error.response!.statusMessage!,
          error.response!.statusCode!,
        );

        break;
      case DioErrorType.other:
        _showDefaultError(context);
        break;
    }
  } else {
    _showUnknownError(context);
  }
}