Birbonus exposes public services that allow the host application to retrieve SDK-managed information.
EcoPublicBalance contains the current user's publicly exposed balance information.
public struct EcoPublicBalance {
/// The user's current balance.
let balance: Amount?
/// The user's current card number.
let cardNumber: String?
}Some properties may be nil, depending on eligibility, account state, or data availability.
public protocol EcoPublicServiceProtocol {
/// Retrieves the user's current balance information.
///
/// - Returns: A publisher that emits EcoPublicBalance on success
/// or fails with an Error.
func fetchBalance() -> AnyPublisher<EcoPublicBalance, Error>
/// Retrieves the Birbonus Cabinet red-dot indicator status.
///
/// If the request fails, the SDK returns a default status
/// with isEnabled set to false.
func getBirbonusRedDotStatus()
-> AnyPublisher<EcoPublicBirbonusRedDotStatus, Never>
}guard let publicService = configurator.publicService else {
return
}
publicService
.fetchBalance()
.receive(on: DispatchQueue.main)
.handleEvents(receiveOutput: { balance in
print("Birbonus public balance: \(balance)")
})
.eraseToAnyPublisher()publicService
.getBirbonusRedDotStatus()
.receive(on: DispatchQueue.main)
.handleEvents(receiveOutput: { status in
print("Birbonus red-dot status: \(status.isEnabled)")
})
.eraseToAnyPublisher()