Skip to content

0.3.4

Compare
Choose a tag to compare
@s4cha s4cha released this 28 Oct 14:06
· 43 commits to master since this release
8792ccd
  • 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 !