socketOrServerException<T> function

Future<Either<ErrorResponseDto, T>> socketOrServerException<T>(
  1. DioException e
)

Implementation

Future<Either<ErrorResponseDto, T>> socketOrServerException<T>(DioException e) {
  // if (e.error.toString().contains('SocketException')) {
  //   final errorMessage = e.message ?? 'Socket Error';
  //   return Future.value(left(ErrorResponseDto(message: errorMessage)));
  // }

  // catch 422
  if (DioExceptionType.values.contains(e.type)) {
    // if error body available
    if (e.response?.data != null) {
      final errorResponse = ErrorResponseDto.fromJson(e.response?.data);
      return Future.value(left(errorResponse));
    }

    return Future.value(
      left(ErrorResponseDto(message: e.message ?? 'Unknown Error')),
    );
  }

  if (e.response?.data['errors'] == null) {
    return Future.value(
      left(ErrorResponseDto(message: e.response?.data['message'])),
    );
  }

  return Future.value(left(ErrorResponseDto.fromJson(e.response!.data)));
}