Commit 595b8d18 by Dima Bart

Add typed collection to BUYPaymentController.

parent 47bb8ca0
......@@ -37,6 +37,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, strong, readonly) NSOrderedSet <id <BUYPaymentProvider>> *providers;
/**
* The registered payment providers
*/
- (NSArray< id<BUYPaymentProvider> > *)providersArray;
/**
* Register a payment provider
*
* @param paymentProvider a payment provider
......
......@@ -38,24 +38,16 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym
@implementation BUYPaymentController
- (void)startCheckout:(BUYCheckout *)checkout withProviderType:(NSString *)typeIdentifier;
{
id <BUYPaymentProvider> provider = [self providerForType:typeIdentifier];
[provider startCheckout:checkout];
}
#pragma mark - Accessors -
- (void)addPaymentProvider:(id <BUYPaymentProvider>)paymentProvider
- (NSSet <id <BUYPaymentProvider>> *)providers
{
if ([self.mutableProviders containsObject:paymentProvider]) {
NSLog(@"Payment provider %@ has already been added", paymentProvider.identifier);
}
[self.mutableProviders addObject:paymentProvider];
return [self.mutableProviders copy];
}
- (NSSet <id <BUYPaymentProvider>> *)providers
- (NSArray< id<BUYPaymentProvider> > *)providersArray
{
return [self.mutableProviders copy];
return self.mutableProviders.array;
}
- (NSMutableOrderedSet *)mutableProviders
......@@ -67,6 +59,23 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym
return _mutableProviders;
}
#pragma mark - Tasks -
- (void)startCheckout:(BUYCheckout *)checkout withProviderType:(NSString *)typeIdentifier;
{
id <BUYPaymentProvider> provider = [self providerForType:typeIdentifier];
[provider startCheckout:checkout];
}
- (void)addPaymentProvider:(id <BUYPaymentProvider>)paymentProvider
{
if ([self.mutableProviders containsObject:paymentProvider]) {
NSLog(@"Payment provider %@ has already been added", paymentProvider.identifier);
}
[self.mutableProviders addObject:paymentProvider];
}
- (id <BUYPaymentProvider>)providerForType:(NSString *)type
{
for (id <BUYPaymentProvider> provider in self.mutableProviders) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment