createErrorEntity function

ErrorEntity createErrorEntity(
  1. DioError error
)

Implementation

ErrorEntity createErrorEntity(DioError error) {
  switch (error.type) {
    case DioErrorType.cancel:
      return ErrorEntity(code: -1, message: 'Request cancellation');

    case DioErrorType.connectTimeout:
      return ErrorEntity(code: -1, message: 'Connection timed out');

    case DioErrorType.sendTimeout:
      return ErrorEntity(code: -1, message: 'Request timed out');

    case DioErrorType.receiveTimeout:
      return ErrorEntity(code: -1, message: 'Response timeout');

    case DioErrorType.response:
      try {
        var errCode = error.response?.statusCode;
        if (errCode == null) {
          return ErrorEntity(code: -2, message: error.message);
        }
        switch (errCode) {
          case 400:
            return ErrorEntity(code: errCode, message: 'Bad Request');

          case 401:
            return ErrorEntity(code: errCode, message: 'Unauthorized');

          case 403:
            return ErrorEntity(code: errCode, message: 'Forbidden');

          case 404:
            return ErrorEntity(code: errCode, message: 'Not Found');

          case 405:
            return ErrorEntity(code: errCode, message: 'Method Not Allowed');

          case 500:
            return ErrorEntity(code: errCode, message: 'Internal Server Error');

          case 502:
            return ErrorEntity(code: errCode, message: 'Bad Gateway');

          case 503:
            return ErrorEntity(code: errCode, message: 'Service Unavailable');

          case 505:
            return ErrorEntity(code: errCode, message: 'HTTP  Not Supported');

          default:
            return ErrorEntity(
              code: errCode,
              message: error.response?.statusMessage ?? '',
            );
        }
      } on Exception catch (error) {
        return ErrorEntity(code: -1, message: error.toString());
      }

    default:
      return ErrorEntity(code: -1, message: error.message);
  }
}