Migrate to v4 - themobilitybox/mobilitybox-ticketing-ios GitHub Wiki
The Mobilitybox Ticketing Library for iOS v4 introduces tariff settings and tariff settings schema and implements the changes to attributes by the Mobilitybox API v4. This document summarizes the most important changes and walks you through how to upgrade an application using v3 of the Mobilitybox Ticketing iOS SDK to v4.
Setup Mobilitybox
If you setup the Mobilitybox
with a custom URL, make sure that you use from now on the Mobilitybox API v4:
Mobilitybox.setup(apiConfig: MobilityboxAPI.Config(apiURL: "https://api.themobilitybox.com/v4"))
Attribute Changes
MobilityboxCoupon.tariff_settings : [String: MobilityboxJSONValue]? // saved tariff settings for coupon
MobilityboxCoupon.tariff_settings_valid : Bool? // indicates if saved tariff settings are valid and coupon can be activated
MobilityboxProduct.tariff_settings_schema: TariffSettingsSchema? // JSON-Schema of the tariff settings
MobilityboxSubscription.original_subscription_id: String? = "mobilitybox-subscription-uuid"
MobilityboxSubscription.restored_subscription_id: String? = "mobilitybox-subscription-uuid"
MobilityboxSubscription.subscription_reorderable: Bool? // indicates if subscription can be reordered
MobilityboxSubscription.subscription_cycles: [MobilityboxSubscriptionCycle]? // complete list of subscription cycles
MobilityboxIdentificationView changes
The view also renders tariff settings forms if product requires it (MobilityboxProduct.tariff_settings_schema is not nil). By default the MobilityboxIdentificationView automatically send the MobilityboxTariffSettings to the coupon activate function, when the users clicks the activate button (if the MobilityboxProduct.tariff_settings_schema is present).
MobilityboxCoupon.activate changes
The v4 adds optional parameter MobilityboxTariffSettings to the activate function. When the product doesn't need tariff settings there is no change needed.
public func activate(identificationMedium: MobilityboxIdentificationMedium, tariffSettings: MobilityboxTariffSettings? = nil, activationStartDateTime: Date? = nil, onSuccess completion: @escaping (MobilityboxTicketCode) -> (), onFailure failure: ((MobilityboxError?) -> Void)? = nil)