Commit 01d26e97 by Dima Bart

Merge pull request #128 from Shopify/feature/app-extensions

Migrate to App Extensions API.
parents 8f6e4bcc 0cf32503
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#warning - Enter your shop domain and API Key #warning - Enter your shop domain and API Key
#define SHOP_DOMAIN @"" #define SHOP_DOMAIN @""
#define API_KEY @"" #define API_KEY @""
#define CHANNEL_ID @"" #define APP_ID @""
@interface CollectionListViewController () @interface CollectionListViewController ()
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
self.client = [[BUYClient alloc] initWithShopDomain:SHOP_DOMAIN self.client = [[BUYClient alloc] initWithShopDomain:SHOP_DOMAIN
apiKey:API_KEY apiKey:API_KEY
channelId:CHANNEL_ID]; appId:APP_ID];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[self.client getCollections:^(NSArray *collections, NSError *error) { [self.client getCollections:^(NSArray *collections, NSError *error) {
......
...@@ -62,9 +62,9 @@ ...@@ -62,9 +62,9 @@
{ {
self.shopDomain = BUYShopDomain_Placeholder; self.shopDomain = BUYShopDomain_Placeholder;
self.apiKey = BUYAPIKey_Placeholder; self.apiKey = BUYAPIKey_Placeholder;
self.channelId = BUYChannelId_Placeholder; self.appId = BUYAppId_Placeholder;
self.client = [[BUYClient_Test alloc] initWithShopDomain:self.shopDomain apiKey:self.apiKey channelId:self.channelId]; self.client = [[BUYClient_Test alloc] initWithShopDomain:self.shopDomain apiKey:self.apiKey appId:self.appId];
} }
- (NSData *)dataForCartFromClient:(BUYClient *)client - (NSData *)dataForCartFromClient:(BUYClient *)client
...@@ -89,9 +89,7 @@ ...@@ -89,9 +89,7 @@
NSDictionary *dict = @{@"checkout": NSDictionary *dict = @{@"checkout":
@{@"line_items": @[], @{@"line_items": @[],
@"channel_id": self.channelId,
@"source_name": @"mobile_app", @"source_name": @"mobile_app",
@"source_identifier": self.client.channelId,
@"marketing_attribution":@{@"medium": @"iOS", @"source": self.client.applicationName}}}; @"marketing_attribution":@{@"medium": @"iOS", @"source": self.client.applicationName}}};
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
...@@ -230,7 +228,7 @@ ...@@ -230,7 +228,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=collection-default"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=collection-default"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -242,7 +240,7 @@ ...@@ -242,7 +240,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=best-selling"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=best-selling"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -254,7 +252,7 @@ ...@@ -254,7 +252,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=created-ascending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=created-ascending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -266,7 +264,7 @@ ...@@ -266,7 +264,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=created-descending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=created-descending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -278,7 +276,7 @@ ...@@ -278,7 +276,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=price-ascending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=price-ascending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -290,7 +288,7 @@ ...@@ -290,7 +288,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=price-descending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=price-descending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -302,7 +300,7 @@ ...@@ -302,7 +300,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=title-ascending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=title-ascending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
...@@ -314,7 +312,7 @@ ...@@ -314,7 +312,7 @@
XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET"); XCTAssertEqualObjects(task.originalRequest.HTTPMethod, @"GET");
XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https"); XCTAssertEqualObjects(task.originalRequest.URL.scheme, @"https");
XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop"); XCTAssertEqualObjects(task.originalRequest.URL.host, @"test_shop");
XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/channels/api_key/product_publications.json"); XCTAssertEqualObjects(task.originalRequest.URL.path, @"/api/apps/app_id/product_listings.json");
NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]]; NSSet *requestQueryItems = [NSSet setWithArray:[task.originalRequest.URL.query componentsSeparatedByString:@"&"]];
NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=title-descending"]]; NSSet *queryItems = [NSSet setWithArray:@[@"collection_id=1", @"limit=25", @"page=1", @"sort_by=title-descending"]];
XCTAssertEqualObjects(requestQueryItems, queryItems); XCTAssertEqualObjects(requestQueryItems, queryItems);
......
...@@ -29,13 +29,13 @@ ...@@ -29,13 +29,13 @@
extern NSString * const BUYShopDomain_Placeholder; extern NSString * const BUYShopDomain_Placeholder;
extern NSString * const BUYAPIKey_Placeholder; extern NSString * const BUYAPIKey_Placeholder;
extern NSString * const BUYChannelId_Placeholder; extern NSString * const BUYAppId_Placeholder;
@interface BUYClientTestBase : XCTestCase @interface BUYClientTestBase : XCTestCase
@property (nonatomic, strong) NSString *shopDomain; @property (nonatomic, strong) NSString *shopDomain;
@property (nonatomic, strong) NSString *apiKey; @property (nonatomic, strong) NSString *apiKey;
@property (nonatomic, strong) NSString *channelId; @property (nonatomic, strong) NSString *appId;
@property (nonatomic, strong) NSString *merchantId; @property (nonatomic, strong) NSString *merchantId;
@property (nonatomic, strong) NSString *giftCardCode; @property (nonatomic, strong) NSString *giftCardCode;
@property (nonatomic, strong) NSString *giftCardCode2; @property (nonatomic, strong) NSString *giftCardCode2;
......
...@@ -28,8 +28,8 @@ ...@@ -28,8 +28,8 @@
#import "BUYTestConstants.h" #import "BUYTestConstants.h"
NSString * const BUYShopDomain_Placeholder = @"test_shop"; NSString * const BUYShopDomain_Placeholder = @"test_shop";
NSString * const BUYAPIKey_Placeholder = @"channel_id"; NSString * const BUYAPIKey_Placeholder = @"api_key";
NSString * const BUYChannelId_Placeholder = @"api_key"; NSString * const BUYAppId_Placeholder = @"app_id";
@implementation BUYClientTestBase @implementation BUYClientTestBase
...@@ -50,7 +50,7 @@ NSString * const BUYChannelId_Placeholder = @"api_key"; ...@@ -50,7 +50,7 @@ NSString * const BUYChannelId_Placeholder = @"api_key";
NSDictionary *environment = [[NSProcessInfo processInfo] environment]; NSDictionary *environment = [[NSProcessInfo processInfo] environment];
self.shopDomain = environment[kBUYTestDomain] ?: jsonConfig[kBUYTestDomain]; self.shopDomain = environment[kBUYTestDomain] ?: jsonConfig[kBUYTestDomain];
self.apiKey = environment[kBUYTestAPIKey] ?: jsonConfig[kBUYTestAPIKey]; self.apiKey = environment[kBUYTestAPIKey] ?: jsonConfig[kBUYTestAPIKey];
self.channelId = environment[kBUYTestChannelId] ?: jsonConfig[kBUYTestChannelId]; self.appId = environment[kBUYTestAppId] ?: jsonConfig[kBUYTestAppId];
self.merchantId = environment[kBUYTestMerchantId] ?: jsonConfig[kBUYTestMerchantId]; self.merchantId = environment[kBUYTestMerchantId] ?: jsonConfig[kBUYTestMerchantId];
NSDictionary *giftCards = jsonConfig[@"gift_cards"]; NSDictionary *giftCards = jsonConfig[@"gift_cards"];
...@@ -75,7 +75,7 @@ NSString * const BUYChannelId_Placeholder = @"api_key"; ...@@ -75,7 +75,7 @@ NSString * const BUYChannelId_Placeholder = @"api_key";
self.shopDomain = BUYShopDomain_Placeholder; self.shopDomain = BUYShopDomain_Placeholder;
self.apiKey = BUYAPIKey_Placeholder; self.apiKey = BUYAPIKey_Placeholder;
self.channelId = BUYChannelId_Placeholder; self.appId = BUYAppId_Placeholder;
self.giftCardCode = @"rd11"; self.giftCardCode = @"rd11";
self.giftCardCode2 = @"rd25"; self.giftCardCode2 = @"rd25";
...@@ -84,12 +84,12 @@ NSString * const BUYChannelId_Placeholder = @"api_key"; ...@@ -84,12 +84,12 @@ NSString * const BUYChannelId_Placeholder = @"api_key";
self.giftCardCodeExpired = @"gibberish"; self.giftCardCodeExpired = @"gibberish";
} }
self.client = [[BUYClient alloc] initWithShopDomain:self.shopDomain apiKey:self.apiKey channelId:self.channelId]; self.client = [[BUYClient alloc] initWithShopDomain:self.shopDomain apiKey:self.apiKey appId:self.appId];
} }
- (BOOL)shouldUseMocks - (BOOL)shouldUseMocks
{ {
if (!self.shopDomain.length && !self.apiKey.length && !self.channelId.length) { if (!self.shopDomain.length && !self.apiKey.length && !self.appId.length) {
_shouldUseMocks = YES; _shouldUseMocks = YES;
} }
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#import "BUYTestConstants.h" #import "BUYTestConstants.h"
#import "BUYAddress+Additions.h" #import "BUYAddress+Additions.h"
#import "BUYCheckout_Private.h" #import "BUYCheckout_Private.h"
#import "BUYClient+Test.h"
#import "BUYClientTestBase.h" #import "BUYClientTestBase.h"
#import <OHHTTPStubs/OHHTTPStubs.h> #import <OHHTTPStubs/OHHTTPStubs.h>
#import "OHHTTPStubsResponse+Helpers.h" #import "OHHTTPStubsResponse+Helpers.h"
...@@ -902,7 +901,7 @@ ...@@ -902,7 +901,7 @@
return [OHHTTPStubsResponse responseWithKey:@"testInvalidIntegrationBadShopUrl_0"]; return [OHHTTPStubsResponse responseWithKey:@"testInvalidIntegrationBadShopUrl_0"];
}]; }];
self.client = [[BUYClient alloc] initWithShopDomain:@"asdfdsasdfdsasdfdsadsfowinfaoinfw.myshopify.com" apiKey:self.apiKey channelId:nil]; self.client = [[BUYClient alloc] initWithShopDomain:@"asdfdsasdfdsasdfdsadsfowinfaoinfw.myshopify.com" apiKey:self.apiKey appId:nil];
[self.client createCheckout:_checkout completion:^(BUYCheckout *checkout, NSError *error) { [self.client createCheckout:_checkout completion:^(BUYCheckout *checkout, NSError *error) {
XCTAssertNotNil(error); XCTAssertNotNil(error);
XCTAssertEqualObjects(error.domain, @"shopify"); XCTAssertEqualObjects(error.domain, @"shopify");
...@@ -1153,38 +1152,6 @@ ...@@ -1153,38 +1152,6 @@
XCTAssertTrue(_checkout.discount.applicable); XCTAssertTrue(_checkout.discount.applicable);
} }
- (void)testIntegration
{
XCTAssertTrue([self.client testIntegrationWithMerchantId:nil]);
XCTAssertTrue([self.client testIntegrationWithMerchantId:self.merchantId]);
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest * _Nonnull request) {
return [self shouldUseMocks];
} withStubResponse:^OHHTTPStubsResponse * _Nonnull(NSURLRequest * _Nonnull request) {
return [OHHTTPStubsResponse responseWithKey:@"testInvalidIntegrationBadChannelId_0"];
}];
BUYClient *badClient = [[BUYClient alloc] initWithShopDomain:self.shopDomain apiKey:self.apiKey channelId:@"asdvfdbfdgasfgdsfg"];
XCTAssertFalse([badClient testIntegrationWithMerchantId:nil]);
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest * _Nonnull request) {
return [self shouldUseMocks];
} withStubResponse:^OHHTTPStubsResponse * _Nonnull(NSURLRequest * _Nonnull request) {
return [OHHTTPStubsResponse responseWithKey:@"testInvalidIntegrationBadApiKey_0"];
}];
badClient = [[BUYClient alloc] initWithShopDomain:self.shopDomain apiKey:@"sadgsefgsdfgsdfgsdfg" channelId:self.channelId];
XCTAssertFalse([badClient testIntegrationWithMerchantId:nil]);
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest * _Nonnull request) {
return [self shouldUseMocks];
} withStubResponse:^OHHTTPStubsResponse * _Nonnull(NSURLRequest * _Nonnull request) {
return [OHHTTPStubsResponse responseWithKey:@"testInvalidIntegrationBadShopUrl_0"];
}];
badClient = [[BUYClient alloc] initWithShopDomain:@"asdvfdbfdgasfgdsfg.myshopify.com" apiKey:self.apiKey channelId:self.channelId];
XCTAssertFalse([badClient testIntegrationWithMerchantId:nil]);
XCTAssertFalse([badClient testIntegrationWithMerchantId:@"blah"]);
}
- (void)testGetCheckoutWithInvalidToken - (void)testGetCheckoutWithInvalidToken
{ {
[OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest * _Nonnull request) { [OHHTTPStubs stubRequestsPassingTest:^BOOL(NSURLRequest * _Nonnull request) {
...@@ -1326,8 +1293,8 @@ ...@@ -1326,8 +1293,8 @@
NSString *shopDomain = [self shouldUseMocks] ? BUYShopDomain_Placeholder : self.shopDomain; NSString *shopDomain = [self shouldUseMocks] ? BUYShopDomain_Placeholder : self.shopDomain;
NSString *apiKey = [self shouldUseMocks] ? BUYAPIKey_Placeholder : self.apiKey; NSString *apiKey = [self shouldUseMocks] ? BUYAPIKey_Placeholder : self.apiKey;
NSString *channelId = [self shouldUseMocks] ? BUYChannelId_Placeholder : self.channelId; NSString *appId = [self shouldUseMocks] ? BUYAppId_Placeholder : self.appId;
BUYClient *testClient = [[BUYClient alloc] initWithShopDomain:shopDomain apiKey:apiKey channelId:channelId]; BUYClient *testClient = [[BUYClient alloc] initWithShopDomain:shopDomain apiKey:apiKey appId:appId];
testClient.queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0); testClient.queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
[testClient getShop:^(BUYShop *shop, NSError *error) { [testClient getShop:^(BUYShop *shop, NSError *error) {
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
// These should be defined as environment variables in your scheme, or in the CI machine // These should be defined as environment variables in your scheme, or in the CI machine
#define kBUYTestDomain @"shop_domain" #define kBUYTestDomain @"shop_domain"
#define kBUYTestAPIKey @"api_key" #define kBUYTestAPIKey @"api_key"
#define kBUYTestChannelId @"channel_id" #define kBUYTestAppId @"app_id"
#define kBUYTestMerchantId @"merchant_id" #define kBUYTestMerchantId @"merchant_id"
#define kBUYTestGiftCardCode11 @"gift_card_code_11" #define kBUYTestGiftCardCode11 @"gift_card_code_11"
#define kBUYTestGiftCardCode25 @"gift_card_code_25" #define kBUYTestGiftCardCode25 @"gift_card_code_25"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
"shop_domain": "", "shop_domain": "",
"api_key": "", "api_key": "",
"channel_id": "", "channel_id": "",
"app_id": "",
"merchant_id": "", "merchant_id": "",
"product_ids": [ "product_ids": [
"", "",
......
...@@ -98,7 +98,6 @@ ...@@ -98,7 +98,6 @@
901931141BC5B9BC00D1134E /* BUYProductViewFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516C7A1B4C589A00E35E45 /* BUYProductViewFooter.m */; }; 901931141BC5B9BC00D1134E /* BUYProductViewFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516C7A1B4C589A00E35E45 /* BUYProductViewFooter.m */; };
901931151BC5B9BC00D1134E /* BUYPresentationControllerWithNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516CBE1B4F110A00E35E45 /* BUYPresentationControllerWithNavigationController.m */; }; 901931151BC5B9BC00D1134E /* BUYPresentationControllerWithNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516CBE1B4F110A00E35E45 /* BUYPresentationControllerWithNavigationController.m */; };
901931161BC5B9BC00D1134E /* BUYShippingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AFAA651B01398A00F21C23 /* BUYShippingRate.m */; }; 901931161BC5B9BC00D1134E /* BUYShippingRate.m in Sources */ = {isa = PBXBuildFile; fileRef = 90AFAA651B01398A00F21C23 /* BUYShippingRate.m */; };
901931171BC5B9BC00D1134E /* BUYClient+Test.m in Sources */ = {isa = PBXBuildFile; fileRef = BE2E1D391B5E8663009610DA /* BUYClient+Test.m */; };
901931181BC5B9BC00D1134E /* BUYGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516CB31B4EE5E700E35E45 /* BUYGradientView.m */; }; 901931181BC5B9BC00D1134E /* BUYGradientView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90516CB31B4EE5E700E35E45 /* BUYGradientView.m */; };
901931191BC5B9BC00D1134E /* BUYViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1C4DF61AE98FBB00E21624 /* BUYViewController.m */; }; 901931191BC5B9BC00D1134E /* BUYViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1C4DF61AE98FBB00E21624 /* BUYViewController.m */; };
9019311A1BC5B9BC00D1134E /* BUYImageKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 900E7C821B5DA32F006F3C81 /* BUYImageKit.m */; }; 9019311A1BC5B9BC00D1134E /* BUYImageKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 900E7C821B5DA32F006F3C81 /* BUYImageKit.m */; };
...@@ -146,7 +145,6 @@ ...@@ -146,7 +145,6 @@
901931471BC5B9BC00D1134E /* BUYPaymentButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 905AA96F1B3B32A500CAE037 /* BUYPaymentButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; 901931471BC5B9BC00D1134E /* BUYPaymentButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 905AA96F1B3B32A500CAE037 /* BUYPaymentButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
901931481BC5B9BC00D1134E /* BUYImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 90516CAE1B4EC9FE00E35E45 /* BUYImageView.h */; }; 901931481BC5B9BC00D1134E /* BUYImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 90516CAE1B4EC9FE00E35E45 /* BUYImageView.h */; };
901931491BC5B9BC00D1134E /* BUYGiftCard.h in Headers */ = {isa = PBXBuildFile; fileRef = 42488B321AB8761A005F21A9 /* BUYGiftCard.h */; settings = {ATTRIBUTES = (Public, ); }; }; 901931491BC5B9BC00D1134E /* BUYGiftCard.h in Headers */ = {isa = PBXBuildFile; fileRef = 42488B321AB8761A005F21A9 /* BUYGiftCard.h */; settings = {ATTRIBUTES = (Public, ); }; };
9019314A1BC5B9BC00D1134E /* BUYClient+Test.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2E1D381B5E8663009610DA /* BUYClient+Test.h */; settings = {ATTRIBUTES = (Public, ); }; };
9019314B1BC5B9BC00D1134E /* BUYNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 90516CC11B4F1ED700E35E45 /* BUYNavigationController.h */; }; 9019314B1BC5B9BC00D1134E /* BUYNavigationController.h in Headers */ = {isa = PBXBuildFile; fileRef = 90516CC11B4F1ED700E35E45 /* BUYNavigationController.h */; };
9019314C1BC5B9BC00D1134E /* NSURL+BUYAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5DC39E1B71B13700B2BC1E /* NSURL+BUYAdditions.h */; }; 9019314C1BC5B9BC00D1134E /* NSURL+BUYAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5DC39E1B71B13700B2BC1E /* NSURL+BUYAdditions.h */; };
9019314D1BC5B9BC00D1134E /* BUYVariantOptionBreadCrumbsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 90DE926E1B9897B6002EF4DA /* BUYVariantOptionBreadCrumbsView.h */; }; 9019314D1BC5B9BC00D1134E /* BUYVariantOptionBreadCrumbsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 90DE926E1B9897B6002EF4DA /* BUYVariantOptionBreadCrumbsView.h */; };
...@@ -221,8 +219,6 @@ ...@@ -221,8 +219,6 @@
BE1007961B6038150031CEE7 /* BUYProductVariant+Options.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1007941B6038150031CEE7 /* BUYProductVariant+Options.m */; }; BE1007961B6038150031CEE7 /* BUYProductVariant+Options.m in Sources */ = {isa = PBXBuildFile; fileRef = BE1007941B6038150031CEE7 /* BUYProductVariant+Options.m */; };
BE10079B1B6165EC0031CEE7 /* BUYOptionValueCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1007991B6165EC0031CEE7 /* BUYOptionValueCell.h */; }; BE10079B1B6165EC0031CEE7 /* BUYOptionValueCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1007991B6165EC0031CEE7 /* BUYOptionValueCell.h */; };
BE10079C1B6165EC0031CEE7 /* BUYOptionValueCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BE10079A1B6165EC0031CEE7 /* BUYOptionValueCell.m */; }; BE10079C1B6165EC0031CEE7 /* BUYOptionValueCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BE10079A1B6165EC0031CEE7 /* BUYOptionValueCell.m */; };
BE2E1D3A1B5E8663009610DA /* BUYClient+Test.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2E1D381B5E8663009610DA /* BUYClient+Test.h */; settings = {ATTRIBUTES = (Public, ); }; };
BE2E1D3B1B5E8663009610DA /* BUYClient+Test.m in Sources */ = {isa = PBXBuildFile; fileRef = BE2E1D391B5E8663009610DA /* BUYClient+Test.m */; };
BE47340F1B66C4EF00AA721A /* BUYError.h in Headers */ = {isa = PBXBuildFile; fileRef = BE47340D1B66C4EF00AA721A /* BUYError.h */; settings = {ATTRIBUTES = (Public, ); }; }; BE47340F1B66C4EF00AA721A /* BUYError.h in Headers */ = {isa = PBXBuildFile; fileRef = BE47340D1B66C4EF00AA721A /* BUYError.h */; settings = {ATTRIBUTES = (Public, ); }; };
BE4734101B66C4EF00AA721A /* BUYError.m in Sources */ = {isa = PBXBuildFile; fileRef = BE47340E1B66C4EF00AA721A /* BUYError.m */; }; BE4734101B66C4EF00AA721A /* BUYError.m in Sources */ = {isa = PBXBuildFile; fileRef = BE47340E1B66C4EF00AA721A /* BUYError.m */; };
BE5DC3631B71022D00B2BC1E /* BUYMaskedCreditCard.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5DC3611B71022D00B2BC1E /* BUYMaskedCreditCard.h */; settings = {ATTRIBUTES = (Public, ); }; }; BE5DC3631B71022D00B2BC1E /* BUYMaskedCreditCard.h in Headers */ = {isa = PBXBuildFile; fileRef = BE5DC3611B71022D00B2BC1E /* BUYMaskedCreditCard.h */; settings = {ATTRIBUTES = (Public, ); }; };
...@@ -472,8 +468,6 @@ ...@@ -472,8 +468,6 @@
BE1C4DF41AE98FBB00E21624 /* BUYStoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BUYStoreViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; BE1C4DF41AE98FBB00E21624 /* BUYStoreViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BUYStoreViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
BE1C4DF51AE98FBB00E21624 /* BUYViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BUYViewController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; }; BE1C4DF51AE98FBB00E21624 /* BUYViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BUYViewController.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
BE1C4DF61AE98FBB00E21624 /* BUYViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BUYViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; BE1C4DF61AE98FBB00E21624 /* BUYViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BUYViewController.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
BE2E1D381B5E8663009610DA /* BUYClient+Test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = "BUYClient+Test.h"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
BE2E1D391B5E8663009610DA /* BUYClient+Test.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = "BUYClient+Test.m"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
BE33B4ED1B15FF4D0067982B /* BUYApplePayHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BUYApplePayHelpers.h; sourceTree = "<group>"; }; BE33B4ED1B15FF4D0067982B /* BUYApplePayHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BUYApplePayHelpers.h; sourceTree = "<group>"; };
BE33B4EE1B15FF4D0067982B /* BUYApplePayHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BUYApplePayHelpers.m; sourceTree = "<group>"; }; BE33B4EE1B15FF4D0067982B /* BUYApplePayHelpers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BUYApplePayHelpers.m; sourceTree = "<group>"; };
BE33B4F91B177EC80067982B /* BUYAddress+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BUYAddress+Additions.h"; sourceTree = "<group>"; }; BE33B4F91B177EC80067982B /* BUYAddress+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BUYAddress+Additions.h"; sourceTree = "<group>"; };
...@@ -880,8 +874,6 @@ ...@@ -880,8 +874,6 @@
children = ( children = (
F7FDA17019C93F6F00AF4E93 /* BUYClient.h */, F7FDA17019C93F6F00AF4E93 /* BUYClient.h */,
F7FDA17119C93F6F00AF4E93 /* BUYClient.m */, F7FDA17119C93F6F00AF4E93 /* BUYClient.m */,
BE2E1D381B5E8663009610DA /* BUYClient+Test.h */,
BE2E1D391B5E8663009610DA /* BUYClient+Test.m */,
); );
path = Data; path = Data;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -930,7 +922,6 @@ ...@@ -930,7 +922,6 @@
901931481BC5B9BC00D1134E /* BUYImageView.h in Headers */, 901931481BC5B9BC00D1134E /* BUYImageView.h in Headers */,
901931491BC5B9BC00D1134E /* BUYGiftCard.h in Headers */, 901931491BC5B9BC00D1134E /* BUYGiftCard.h in Headers */,
BE6D059A1BD6BA6700772EBB /* NSDictionary+Additions.h in Headers */, BE6D059A1BD6BA6700772EBB /* NSDictionary+Additions.h in Headers */,
9019314A1BC5B9BC00D1134E /* BUYClient+Test.h in Headers */,
9019314B1BC5B9BC00D1134E /* BUYNavigationController.h in Headers */, 9019314B1BC5B9BC00D1134E /* BUYNavigationController.h in Headers */,
9019314C1BC5B9BC00D1134E /* NSURL+BUYAdditions.h in Headers */, 9019314C1BC5B9BC00D1134E /* NSURL+BUYAdditions.h in Headers */,
9019314D1BC5B9BC00D1134E /* BUYVariantOptionBreadCrumbsView.h in Headers */, 9019314D1BC5B9BC00D1134E /* BUYVariantOptionBreadCrumbsView.h in Headers */,
...@@ -1007,7 +998,6 @@ ...@@ -1007,7 +998,6 @@
BEB74A771B55646D0005A300 /* BUYImageView.h in Headers */, BEB74A771B55646D0005A300 /* BUYImageView.h in Headers */,
BE9A64571B503CCC0033E558 /* BUYGiftCard.h in Headers */, BE9A64571B503CCC0033E558 /* BUYGiftCard.h in Headers */,
BE6D05991BD6BA6700772EBB /* NSDictionary+Additions.h in Headers */, BE6D05991BD6BA6700772EBB /* NSDictionary+Additions.h in Headers */,
BE2E1D3A1B5E8663009610DA /* BUYClient+Test.h in Headers */,
BEB74A671B55640C0005A300 /* BUYNavigationController.h in Headers */, BEB74A671B55640C0005A300 /* BUYNavigationController.h in Headers */,
BE5DC3A01B71B13700B2BC1E /* NSURL+BUYAdditions.h in Headers */, BE5DC3A01B71B13700B2BC1E /* NSURL+BUYAdditions.h in Headers */,
90DE92701B9897B6002EF4DA /* BUYVariantOptionBreadCrumbsView.h in Headers */, 90DE92701B9897B6002EF4DA /* BUYVariantOptionBreadCrumbsView.h in Headers */,
...@@ -1261,7 +1251,6 @@ ...@@ -1261,7 +1251,6 @@
901931141BC5B9BC00D1134E /* BUYProductViewFooter.m in Sources */, 901931141BC5B9BC00D1134E /* BUYProductViewFooter.m in Sources */,
901931151BC5B9BC00D1134E /* BUYPresentationControllerWithNavigationController.m in Sources */, 901931151BC5B9BC00D1134E /* BUYPresentationControllerWithNavigationController.m in Sources */,
901931161BC5B9BC00D1134E /* BUYShippingRate.m in Sources */, 901931161BC5B9BC00D1134E /* BUYShippingRate.m in Sources */,
901931171BC5B9BC00D1134E /* BUYClient+Test.m in Sources */,
901931181BC5B9BC00D1134E /* BUYGradientView.m in Sources */, 901931181BC5B9BC00D1134E /* BUYGradientView.m in Sources */,
901931191BC5B9BC00D1134E /* BUYViewController.m in Sources */, 901931191BC5B9BC00D1134E /* BUYViewController.m in Sources */,
9019311A1BC5B9BC00D1134E /* BUYImageKit.m in Sources */, 9019311A1BC5B9BC00D1134E /* BUYImageKit.m in Sources */,
...@@ -1357,7 +1346,6 @@ ...@@ -1357,7 +1346,6 @@
BEB74A721B5564320005A300 /* BUYProductViewFooter.m in Sources */, BEB74A721B5564320005A300 /* BUYProductViewFooter.m in Sources */,
BEB74A6A1B5564190005A300 /* BUYPresentationControllerWithNavigationController.m in Sources */, BEB74A6A1B5564190005A300 /* BUYPresentationControllerWithNavigationController.m in Sources */,
BE9A644E1B503CA60033E558 /* BUYShippingRate.m in Sources */, BE9A644E1B503CA60033E558 /* BUYShippingRate.m in Sources */,
BE2E1D3B1B5E8663009610DA /* BUYClient+Test.m in Sources */,
BEB74A661B5564030005A300 /* BUYGradientView.m in Sources */, BEB74A661B5564030005A300 /* BUYGradientView.m in Sources */,
BE9A64811B503D9E0033E558 /* BUYViewController.m in Sources */, BE9A64811B503D9E0033E558 /* BUYViewController.m in Sources */,
900E7C851B5DA559006F3C81 /* BUYImageKit.m in Sources */, 900E7C851B5DA559006F3C81 /* BUYImageKit.m in Sources */,
......
...@@ -41,7 +41,6 @@ FOUNDATION_EXPORT const unsigned char BuyVersionString[]; ...@@ -41,7 +41,6 @@ FOUNDATION_EXPORT const unsigned char BuyVersionString[];
#import <Buy/BUYGiftCard.h> #import <Buy/BUYGiftCard.h>
#import <Buy/BUYLineItem.h> #import <Buy/BUYLineItem.h>
#import <Buy/BUYClient.h> #import <Buy/BUYClient.h>
#import <Buy/BUYClient+Test.h>
#import <Buy/BUYImage.h> #import <Buy/BUYImage.h>
#import <Buy/BUYOption.h> #import <Buy/BUYOption.h>
#import <Buy/BUYOptionValue.h> #import <Buy/BUYOptionValue.h>
......
//
// BUYClient+Test.h
// Mobile Buy SDK
//
// Created by Shopify.
// Copyright (c) 2015 Shopify Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#import "BUYClient.h"
@interface BUYClient (Test)
/**
* Test the integration with your shop. This should not be shipped in production code. This is a syncronous network call.
* @param merchantId the merchant ID setup for Apple Pay in the Integration page of the Mobile Channel
*
* @return YES on success
*/
- (BOOL)testIntegrationWithMerchantId:(NSString *)merchantId;
/**
* Test the integration with your shop. This should not be shipped in production code. This is a syncronous network call.
*
* @return YES on success
*/
- (BOOL)testIntegration DEPRECATED_MSG_ATTRIBUTE("Use testIntegrationWithMerchantId: instead");
@end
//
// BUYClient+Test.m
// Mobile Buy SDK
//
// Created by Shopify.
// Copyright (c) 2015 Shopify Inc. All rights reserved.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
//
#import "BUYClient+Test.h"
@implementation BUYClient (Test)
- (BOOL)testIntegration
{
return [self testIntegrationWithMerchantId:self.merchantId];
}
- (BOOL)testIntegrationWithMerchantId:(NSString *)merchantId;
{
NSLog(@"Remove this call once integration succeeds. This should never be called in production code!!");
NSString *urlString = [NSString stringWithFormat:@"https://%@/mobile_app/verify?api_key=%@&channel_id=%@", self.shopDomain, self.apiKey, self.channelId];
if (merchantId.length > 0) {
urlString = [urlString stringByAppendingFormat:@"&merchant_id=%@", merchantId];
}
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
NSHTTPURLResponse *response = nil;
NSError *error = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
BOOL success = (error == nil && response.statusCode == 200);
return success;
}
@end
...@@ -225,11 +225,11 @@ typedef void (^BUYDataGiftCardBlock)(BUYGiftCard *giftCard, NSError *error); ...@@ -225,11 +225,11 @@ typedef void (^BUYDataGiftCardBlock)(BUYGiftCard *giftCard, NSError *error);
* *
* @param shopDomain The Shop Domain i.e. abetterlookingshop.myshopify.com * @param shopDomain The Shop Domain i.e. abetterlookingshop.myshopify.com
* @param apiKey The API key provided via the Mobile SDK Channel on Shopify Admin * @param apiKey The API key provided via the Mobile SDK Channel on Shopify Admin
* @param channelId The Channel ID provided on Shopify Admin * @param appId The App ID provided on Shopify Admin
* *
* @return An instance of BUYDataClient * @return An instance of BUYDataClient
*/ */
- (instancetype)initWithShopDomain:(NSString *)shopDomain apiKey:(NSString *)apiKey channelId:(NSString *)channelId NS_DESIGNATED_INITIALIZER; - (instancetype)initWithShopDomain:(NSString *)shopDomain apiKey:(NSString *)apiKey appId:(NSString *)appId NS_DESIGNATED_INITIALIZER;
/** /**
* Queue where callbacks will be called * Queue where callbacks will be called
...@@ -255,7 +255,7 @@ typedef void (^BUYDataGiftCardBlock)(BUYGiftCard *giftCard, NSError *error); ...@@ -255,7 +255,7 @@ typedef void (^BUYDataGiftCardBlock)(BUYGiftCard *giftCard, NSError *error);
/** /**
* The Channel ID set using the initializer * The Channel ID set using the initializer
*/ */
@property (nonatomic, strong, readonly) NSString *channelId; @property (nonatomic, strong, readonly) NSString *appId;
/** /**
* The Merchant ID is used for Apple Pay and set using `enableApplePayWithMerchantId:` * The Merchant ID is used for Apple Pay and set using `enableApplePayWithMerchantId:`
......
...@@ -56,14 +56,14 @@ ...@@ -56,14 +56,14 @@
NSString * const BUYVersionString = @"1.2.6"; NSString * const BUYVersionString = @"1.2.6";
static NSString *const kBUYClientPathProductPublications = @"product_publications"; static NSString *const kBUYClientPathProductPublications = @"product_listings";
static NSString *const kBUYClientPathCollectionPublications = @"collection_publications"; static NSString *const kBUYClientPathCollectionPublications = @"collection_listings";
@interface BUYClient () <NSURLSessionDelegate> @interface BUYClient () <NSURLSessionDelegate>
@property (nonatomic, strong) NSString *shopDomain; @property (nonatomic, strong) NSString *shopDomain;
@property (nonatomic, strong) NSString *apiKey; @property (nonatomic, strong) NSString *apiKey;
@property (nonatomic, strong) NSString *channelId; @property (nonatomic, strong) NSString *appId;
@property (nonatomic, strong) NSURLSession *session; @property (nonatomic, strong) NSURLSession *session;
@property (nonatomic, strong) NSString *merchantId; @property (nonatomic, strong) NSString *merchantId;
...@@ -74,7 +74,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi ...@@ -74,7 +74,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi
- (instancetype)init { return nil; } - (instancetype)init { return nil; }
- (instancetype)initWithShopDomain:(NSString *)shopDomain apiKey:(NSString *)apiKey channelId:(NSString *)channelId - (instancetype)initWithShopDomain:(NSString *)shopDomain apiKey:(NSString *)apiKey appId:(NSString *)appId
{ {
if (shopDomain.length == 0) { if (shopDomain.length == 0) {
NSException *exception = [NSException exceptionWithName:@"Bad shop domain" reason:@"Please ensure you initialize with a shop domain" userInfo:nil]; NSException *exception = [NSException exceptionWithName:@"Bad shop domain" reason:@"Please ensure you initialize with a shop domain" userInfo:nil];
...@@ -85,7 +85,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi ...@@ -85,7 +85,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi
if (self) { if (self) {
self.shopDomain = shopDomain; self.shopDomain = shopDomain;
self.apiKey = apiKey; self.apiKey = apiKey;
self.channelId = channelId; self.appId = appId;
self.applicationName = [[NSBundle mainBundle] infoDictionary][@"CFBundleName"] ?: @""; self.applicationName = [[NSBundle mainBundle] infoDictionary][@"CFBundleName"] ?: @"";
self.queue = dispatch_get_main_queue(); self.queue = dispatch_get_main_queue();
self.session = [self createUrlSession]; self.session = [self createUrlSession];
...@@ -247,7 +247,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi ...@@ -247,7 +247,7 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi
- (NSURLComponents *)URLComponentsForChannelsAppendingPath:(NSString *)appendingPath queryItems:(NSDictionary*)queryItems - (NSURLComponents *)URLComponentsForChannelsAppendingPath:(NSString *)appendingPath queryItems:(NSDictionary*)queryItems
{ {
return [self URLComponentsForAPIPath:[NSString stringWithFormat:@"channels/%@", self.channelId] appendingPath:appendingPath queryItems:queryItems]; return [self URLComponentsForAPIPath:[NSString stringWithFormat:@"apps/%@", self.appId] appendingPath:appendingPath queryItems:queryItems];
} }
- (NSURLComponents *)URLComponentsForCheckoutsAppendingPath:(NSString *)appendingPath checkoutToken:(NSString *)checkoutToken queryItems:(NSDictionary*)queryItems - (NSURLComponents *)URLComponentsForCheckoutsAppendingPath:(NSString *)appendingPath checkoutToken:(NSString *)checkoutToken queryItems:(NSDictionary*)queryItems
...@@ -298,10 +298,8 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi ...@@ -298,10 +298,8 @@ static NSString *const kBUYClientPathCollectionPublications = @"collection_publi
- (void)configureCheckout:(BUYCheckout *)checkout - (void)configureCheckout:(BUYCheckout *)checkout
{ {
checkout.channelId = self.channelId;
checkout.marketingAttribution = @{@"medium": @"iOS", @"source": self.applicationName}; checkout.marketingAttribution = @{@"medium": @"iOS", @"source": self.applicationName};
checkout.sourceName = @"mobile_app"; checkout.sourceName = @"mobile_app";
checkout.sourceIdentifier = checkout.channelId;
if (self.urlScheme || checkout.webReturnToURL) { if (self.urlScheme || checkout.webReturnToURL) {
checkout.webReturnToURL = checkout.webReturnToURL ?: self.urlScheme; checkout.webReturnToURL = checkout.webReturnToURL ?: self.urlScheme;
checkout.webReturnToLabel = checkout.webReturnToLabel ?: [@"Return to " stringByAppendingString:self.applicationName]; checkout.webReturnToLabel = checkout.webReturnToLabel ?: [@"Return to " stringByAppendingString:self.applicationName];
......
...@@ -167,11 +167,6 @@ ...@@ -167,11 +167,6 @@
@property (nonatomic, strong, readonly) NSArray<BUYGiftCard *> *giftCards; @property (nonatomic, strong, readonly) NSArray<BUYGiftCard *> *giftCards;
/** /**
* Channel ID where the checkout was created
*/
@property (nonatomic, strong) NSString *channelId;
/**
* Attributions for the checkout, containing the application name and platform (defaults to applicationName set * Attributions for the checkout, containing the application name and platform (defaults to applicationName set
* on the BUYClient, and "iOS" respectively * on the BUYClient, and "iOS" respectively
*/ */
...@@ -225,11 +220,6 @@ ...@@ -225,11 +220,6 @@
@property (nonatomic, copy, readonly) NSString *sourceName; @property (nonatomic, copy, readonly) NSString *sourceName;
/** /**
* The unique identifier for the source: the channelId
*/
@property (nonatomic, copy, readonly) NSString *sourceIdentifier;
/**
* Credit card stored on the checkout * Credit card stored on the checkout
*/ */
@property (nonatomic, strong, readonly) BUYMaskedCreditCard *creditCard; @property (nonatomic, strong, readonly) BUYMaskedCreditCard *creditCard;
......
...@@ -154,7 +154,6 @@ ...@@ -154,7 +154,6 @@
self.termsOfServiceURL = [NSURL buy_urlWithString:dictionary[@"terms_of_service_url"]]; self.termsOfServiceURL = [NSURL buy_urlWithString:dictionary[@"terms_of_service_url"]];
self.sourceName = dictionary[@"source_name"]; self.sourceName = dictionary[@"source_name"];
self.sourceIdentifier = dictionary[@"source_identifier"];
} }
- (NSString *)shippingRateId - (NSString *)shippingRateId
......
...@@ -53,5 +53,4 @@ ...@@ -53,5 +53,4 @@
@property (nonatomic, strong) NSURL *refundPolicyURL; @property (nonatomic, strong) NSURL *refundPolicyURL;
@property (nonatomic, strong) NSURL *termsOfServiceURL; @property (nonatomic, strong) NSURL *termsOfServiceURL;
@property (nonatomic, copy) NSString *sourceName; @property (nonatomic, copy) NSString *sourceName;
@property (nonatomic, copy) NSString *sourceIdentifier;
@end @end
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#import "BUYCartLineItem.h" #import "BUYCartLineItem.h"
#import "BUYCheckout.h" #import "BUYCheckout.h"
#import "BUYCheckoutAttribute.h" #import "BUYCheckoutAttribute.h"
#import "BUYClient+Test.h"
#import "BUYClient.h" #import "BUYClient.h"
#import "BUYCollection.h" #import "BUYCollection.h"
#import "BUYCreditCard.h" #import "BUYCreditCard.h"
......
...@@ -163,7 +163,7 @@ Alternatively, you can edit the `Mobile Buy SDK Tests` scheme and add the follow ...@@ -163,7 +163,7 @@ Alternatively, you can edit the `Mobile Buy SDK Tests` scheme and add the follow
* `shop_domain`: Your shop's domain, for example: `abetterlookingshop.myshopify.com` * `shop_domain`: Your shop's domain, for example: `abetterlookingshop.myshopify.com`
* `api_key`: The API provided when setting up the Mobile App channel on Shopify Admin: *https://your_shop_id.myshopify.com/admin/mobile_app/integration* * `api_key`: The API provided when setting up the Mobile App channel on Shopify Admin: *https://your_shop_id.myshopify.com/admin/mobile_app/integration*
* `channel_id`: The Channel ID provided with the API Key above * `app_id`: The App ID provided with the API Key above
* `gift_card_code_11`, `gift_card_code_25`, `gift_card_code_50`: Three valid [Gift Card](https://docs.shopify.com/manual/your-store/gift-cards) codes for your shop * `gift_card_code_11`, `gift_card_code_25`, `gift_card_code_50`: Three valid [Gift Card](https://docs.shopify.com/manual/your-store/gift-cards) codes for your shop
* `expired_gift_card_code`: An expired Gift Card code * `expired_gift_card_code`: An expired Gift Card code
* `expired_gift_card_id`: The ID for the expired Gift Card * `expired_gift_card_id`: The ID for the expired Gift Card
......
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