Logo

Availability Check

Birbonus provides a server-controlled eligibility mechanism that determines whether SDK features are available to the current user or context.

EcoAvailabilityProtocol

The configurator exposes an availability service that conforms to EcoAvailabilityProtocol.

public protocol EcoAvailabilityProtocol {
    /// Checks whether the current user or context is eligible
    /// for the relevant Birbonus feature or service.
    ///
    /// - Returns: A publisher that emits one Boolean value and never fails.
    func isEligible() -> AnyPublisher<Bool, Never>

    /// Clears the cached eligibility result.
    /// The next isEligible() call performs a fresh check.
    func clearEligibilityCache()
}

Checking Eligibility

After configuring EcoConfigurator, access the availability service through configurator.availabilityService.

guard let availabilityService = configurator.availabilityService else {
    return
}

availabilityService
    .isEligible()
    .receive(on: DispatchQueue.main)
    .handleEvents(receiveOutput: { isEligible in
        print("Birbonus eligibility: \(isEligible)")
    })
    .eraseToAnyPublisher()

Clear the cached result when a fresh eligibility check is required, for example after login or logout:

availabilityService.clearEligibilityCache()