Commit 595b8d18 by Dima Bart

Add typed collection to BUYPaymentController.

parent 47bb8ca0
...@@ -37,6 +37,11 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -37,6 +37,11 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, strong, readonly) NSOrderedSet <id <BUYPaymentProvider>> *providers; @property (nonatomic, strong, readonly) NSOrderedSet <id <BUYPaymentProvider>> *providers;
/** /**
* The registered payment providers
*/
- (NSArray< id<BUYPaymentProvider> > *)providersArray;
/**
* Register a payment provider * Register a payment provider
* *
* @param paymentProvider a payment provider * @param paymentProvider a payment provider
......
...@@ -38,24 +38,16 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym ...@@ -38,24 +38,16 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym
@implementation BUYPaymentController @implementation BUYPaymentController
- (void)startCheckout:(BUYCheckout *)checkout withProviderType:(NSString *)typeIdentifier; #pragma mark - Accessors -
{
id <BUYPaymentProvider> provider = [self providerForType:typeIdentifier];
[provider startCheckout:checkout];
}
- (void)addPaymentProvider:(id <BUYPaymentProvider>)paymentProvider - (NSSet <id <BUYPaymentProvider>> *)providers
{ {
if ([self.mutableProviders containsObject:paymentProvider]) { return [self.mutableProviders copy];
NSLog(@"Payment provider %@ has already been added", paymentProvider.identifier);
}
[self.mutableProviders addObject:paymentProvider];
} }
- (NSSet <id <BUYPaymentProvider>> *)providers - (NSArray< id<BUYPaymentProvider> > *)providersArray
{ {
return [self.mutableProviders copy]; return self.mutableProviders.array;
} }
- (NSMutableOrderedSet *)mutableProviders - (NSMutableOrderedSet *)mutableProviders
...@@ -67,6 +59,23 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym ...@@ -67,6 +59,23 @@ NSString *const BUYPaymentProviderDidCompleteCheckoutNotificationKey = @"BUYPaym
return _mutableProviders; 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 - (id <BUYPaymentProvider>)providerForType:(NSString *)type
{ {
for (id <BUYPaymentProvider> provider in self.mutableProviders) { 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