patchHttp method

  1. @override
Future<Either<NetworkError, dynamic>> patchHttp({
  1. required String path,
  2. int retry = 0,
  3. String? parameter,
  4. Map<String, dynamic>? queryParameter,
  5. dynamic content,
  6. String? contentType,
  7. Map<String, dynamic>? header,
  8. dynamic onSendProgress(
    1. int,
    2. int
    )?,
  9. dynamic onReceiveProgress(
    1. int,
    2. int
    )?,
  10. RetryEvaluator? evaluator,
})
override

Implementation

@override
Future<Either<NetworkError, dynamic>> patchHttp({
  required String path,
  int retry = 0,
  String? parameter,
  Map<String, dynamic>? queryParameter,
  dynamic content,
  String? contentType,
  Map<String, dynamic>? header,
  Function(int, int)? onSendProgress,
  Function(int, int)? onReceiveProgress,
  RetryEvaluator? evaluator,
}) async {
  final connectivityResult = await connectivity.checkConnectivity();
  if (connectivityResult != ConnectivityResult.none) {
    try {
      // await baseStorage.openBox(StorageConstants.base);
      final Map<String, dynamic> dioHeader = _dio.options.headers;
      final Map<String, dynamic> headers = {
        'content-type': ContentType.json.mimeType,
        'Accept': ContentType.json.mimeType,
      };
      if (header != null) {
        headers.addAll(header);
      }
      dioHeader.addAll(headers);
      _dio.options.headers = dioHeader;
      final Response response = await _requestPatch(
        retry: retry,
        path: path,
        content: content,
        onSendProgress: onSendProgress,
        queryParameter: queryParameter,
        onReceiveProgress: onReceiveProgress,
      );
      return right(response.data);
    } on DioError catch (e) {
      debugPrint('================ERROR==================');
      debugPrint(e.type.toString());

      switch (e.type) {
        case DioErrorType.connectionTimeout:
          return left(const NetworkError.timeout());
        case DioErrorType.unknown:
          return left(NetworkError.other(e: e));
        default:
          return left(NetworkError.serverError(response: e.response));
      }
    }
  } else {
    return left(const NetworkError.noInternet());
  }
}