0.3.4
- Solves #26
- Add the ability to retry a request with a middleWare via
requestRetrier
The typical example use case is reauthenticating before retrying a request:
private var isRetrying = CurrentValueSubject<Bool, Error>(false)
init() {
restAPI.network.requestRetrier = { [unowned self] _, error in
if self.isRetrying.value == true {
return self.isRetrying.filter({ !$0 }).asVoid().eraseToAnyPublisher()
}
guard let error = error as? NetworkingError, error.status == .unauthorized else {
return nil
}
return restAPI.authenticate().eraseToAnyPublisher()
}
}
Thanks @denis-obukhov for this improvement !