Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
shopify_iossdk
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cemarose
shopify_iossdk
Commits
38df8cfe
Commit
38df8cfe
authored
May 18, 2016
by
Dima Bart
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Rename routeFor to urlFor.
parent
384a25a0
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
112 additions
and
112 deletions
+112
-112
BUYClient+RoutingTests.m
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClient+RoutingTests.m
+21
-21
BUYClient+Checkout.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
+8
-8
BUYClient+Customers.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m
+8
-8
BUYClient+Routing.h
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Routing.h
+25
-25
BUYClient+Routing.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Routing.m
+45
-45
BUYClient+Storefront.m
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Storefront.m
+5
-5
No files found.
Mobile Buy SDK/Mobile Buy SDK Tests/BUYClient+RoutingTests.m
View file @
38df8cfe
...
@@ -53,92 +53,92 @@
...
@@ -53,92 +53,92 @@
NSDictionary
*
parameters
=
@{
@"param"
:
@"value"
};
NSDictionary
*
parameters
=
@{
@"param"
:
@"value"
};
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForAPI
].
absoluteString
,
[
self
.
client
url
ForAPI
].
absoluteString
,
@"https://_DOMAIN_/api"
@"https://_DOMAIN_/api"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForApps
].
absoluteString
,
[
self
.
client
url
ForApps
].
absoluteString
,
@"https://_DOMAIN_/api/apps/_APP_ID_"
@"https://_DOMAIN_/api/apps/_APP_ID_"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForShop
].
absoluteString
,
[
self
.
client
url
ForShop
].
absoluteString
,
@"https://_DOMAIN_/meta.json"
@"https://_DOMAIN_/meta.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForProductListingsWithParameters
:
parameters
].
absoluteString
,
[
self
.
client
url
ForProductListingsWithParameters
:
parameters
].
absoluteString
,
@"https://_DOMAIN_/api/apps/_APP_ID_/product_listings.json?param=value"
@"https://_DOMAIN_/api/apps/_APP_ID_/product_listings.json?param=value"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCollectionListingsWithParameters
:
parameters
].
absoluteString
,
[
self
.
client
url
ForCollectionListingsWithParameters
:
parameters
].
absoluteString
,
@"https://_DOMAIN_/api/apps/_APP_ID_/collection_listings.json?param=value"
@"https://_DOMAIN_/api/apps/_APP_ID_/collection_listings.json?param=value"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckouts
].
absoluteString
,
[
self
.
client
url
ForCheckouts
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts.json"
@"https://_DOMAIN_/api/checkouts.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsWithToken
:
token
].
absoluteString
,
[
self
.
client
url
ForCheckoutsWithToken
:
token
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_.json"
@"https://_DOMAIN_/api/checkouts/_TOKEN_.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsProcessingWithToken
:
token
].
absoluteString
,
[
self
.
client
url
ForCheckoutsProcessingWithToken
:
token
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_/processing.json"
@"https://_DOMAIN_/api/checkouts/_TOKEN_/processing.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsCompletionWithToken
:
token
].
absoluteString
,
[
self
.
client
url
ForCheckoutsCompletionWithToken
:
token
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_/complete.json"
@"https://_DOMAIN_/api/checkouts/_TOKEN_/complete.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsShippingRatesWithToken
:
token
parameters
:
parameters
].
absoluteString
,
[
self
.
client
url
ForCheckoutsShippingRatesWithToken
:
token
parameters
:
parameters
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_/shipping_rates.json?param=value"
@"https://_DOMAIN_/api/checkouts/_TOKEN_/shipping_rates.json?param=value"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsUsingGiftCard
].
absoluteString
,
[
self
.
client
url
ForCheckoutsUsingGiftCard
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/gift_cards.json"
@"https://_DOMAIN_/api/checkouts/gift_cards.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsUsingGiftCardWithToken
:
token
].
absoluteString
,
[
self
.
client
url
ForCheckoutsUsingGiftCardWithToken
:
token
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_/gift_cards.json"
@"https://_DOMAIN_/api/checkouts/_TOKEN_/gift_cards.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCheckoutsUsingGiftCard
:
@999
token
:
token
].
absoluteString
,
[
self
.
client
url
ForCheckoutsUsingGiftCard
:
@999
token
:
token
].
absoluteString
,
@"https://_DOMAIN_/api/checkouts/_TOKEN_/gift_cards/999.json"
@"https://_DOMAIN_/api/checkouts/_TOKEN_/gift_cards/999.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomers
].
absoluteString
,
[
self
.
client
url
ForCustomers
].
absoluteString
,
@"https://_DOMAIN_/api/customers.json"
@"https://_DOMAIN_/api/customers.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersOrders
].
absoluteString
,
[
self
.
client
url
ForCustomersOrders
].
absoluteString
,
@"https://_DOMAIN_/api/customers/orders.json"
@"https://_DOMAIN_/api/customers/orders.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersWithID
:
identifier
].
absoluteString
,
[
self
.
client
url
ForCustomersWithID
:
identifier
].
absoluteString
,
@"https://_DOMAIN_/api/customers/_ID_.json"
@"https://_DOMAIN_/api/customers/_ID_.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersActivationWithID
:
identifier
parameters
:
parameters
].
absoluteString
,
[
self
.
client
url
ForCustomersActivationWithID
:
identifier
parameters
:
parameters
].
absoluteString
,
@"https://_DOMAIN_/api/customers/_ID_/activate.json?param=value"
@"https://_DOMAIN_/api/customers/_ID_/activate.json?param=value"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersToken
].
absoluteString
,
[
self
.
client
url
ForCustomersToken
].
absoluteString
,
@"https://_DOMAIN_/api/customers/customer_token.json"
@"https://_DOMAIN_/api/customers/customer_token.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersTokenRenewalWithID
:
identifier
].
absoluteString
,
[
self
.
client
url
ForCustomersTokenRenewalWithID
:
identifier
].
absoluteString
,
@"https://_DOMAIN_/api/customers/_ID_/customer_token/renew.json"
@"https://_DOMAIN_/api/customers/_ID_/customer_token/renew.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersPasswordRecovery
].
absoluteString
,
[
self
.
client
url
ForCustomersPasswordRecovery
].
absoluteString
,
@"https://_DOMAIN_/api/customers/recover.json"
@"https://_DOMAIN_/api/customers/recover.json"
);
);
XCTAssertEqualObjects
(
XCTAssertEqualObjects
(
[
self
.
client
route
ForCustomersPasswordResetWithID
:
identifier
parameters
:
parameters
].
absoluteString
,
[
self
.
client
url
ForCustomersPasswordResetWithID
:
identifier
parameters
:
parameters
].
absoluteString
,
@"https://_DOMAIN_/api/customers/_ID_/reset.json?param=value"
@"https://_DOMAIN_/api/customers/_ID_/reset.json?param=value"
);
);
}
}
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Checkout.m
View file @
38df8cfe
...
@@ -83,7 +83,7 @@
...
@@ -83,7 +83,7 @@
-
(
NSURLSessionDataTask
*
)
postCheckout
:(
NSDictionary
*
)
checkoutJSON
completion
:(
BUYDataCheckoutBlock
)
block
-
(
NSURLSessionDataTask
*
)
postCheckout
:(
NSDictionary
*
)
checkoutJSON
completion
:(
BUYDataCheckoutBlock
)
block
{
{
return
[
self
postRequestForURL
:[
self
route
ForCheckouts
]
object
:
checkoutJSON
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:[
self
url
ForCheckouts
]
object
:
checkoutJSON
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}];
}
}
...
@@ -94,7 +94,7 @@
...
@@ -94,7 +94,7 @@
BUYAssert
(
giftCardCode
.
length
>
0
,
@"Failed to apply gift card code. Invalid gift card code."
);
BUYAssert
(
giftCardCode
.
length
>
0
,
@"Failed to apply gift card code. Invalid gift card code."
);
BUYGiftCard
*
giftCard
=
[
self
.
modelManager
giftCardWithCode
:
giftCardCode
];
BUYGiftCard
*
giftCard
=
[
self
.
modelManager
giftCardWithCode
:
giftCardCode
];
NSURL
*
route
=
[
self
route
ForCheckoutsUsingGiftCardWithToken
:
checkout
.
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsUsingGiftCardWithToken
:
checkout
.
token
];
return
[
self
postRequestForURL
:
route
object
:
giftCard
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:
giftCard
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
...
@@ -109,7 +109,7 @@
...
@@ -109,7 +109,7 @@
BUYAssertCheckout
(
checkout
);
BUYAssertCheckout
(
checkout
);
BUYAssert
(
giftCard
.
identifier
,
@"Failed to remove gift card. Gift card must have a valid identifier."
);
BUYAssert
(
giftCard
.
identifier
,
@"Failed to remove gift card. Gift card must have a valid identifier."
);
NSURL
*
route
=
[
self
route
ForCheckoutsUsingGiftCard
:
giftCard
.
identifier
token
:
checkout
.
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsUsingGiftCard
:
giftCard
.
identifier
token
:
checkout
.
token
];
return
[
self
deleteRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
deleteRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
!
error
)
{
if
(
!
error
)
{
[
self
updateCheckout
:
checkout
withGiftCardDictionary
:
json
[
@"gift_card"
]
addingGiftCard
:
NO
];
[
self
updateCheckout
:
checkout
withGiftCardDictionary
:
json
[
@"gift_card"
]
addingGiftCard
:
NO
];
...
@@ -139,7 +139,7 @@
...
@@ -139,7 +139,7 @@
{
{
BUYAssertCheckout
(
checkout
);
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
route
ForCheckoutsWithToken
:
checkout
.
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsWithToken
:
checkout
.
token
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}];
...
@@ -149,7 +149,7 @@
...
@@ -149,7 +149,7 @@
{
{
BUYAssertCheckout
(
checkout
);
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
route
ForCheckoutsWithToken
:
checkout
.
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsWithToken
:
checkout
.
token
];
return
[
self
patchRequestForURL
:
route
object
:
checkout
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
patchRequestForURL
:
route
object
:
checkout
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}];
...
@@ -163,7 +163,7 @@
...
@@ -163,7 +163,7 @@
BUYAssert
(
paymentToken
||
isFree
,
@"Failed to complete checkout. Checkout must have a payment token or have a payment value equal to $0.00"
);
BUYAssert
(
paymentToken
||
isFree
,
@"Failed to complete checkout. Checkout must have a payment token or have a payment value equal to $0.00"
);
NSURL
*
route
=
[
self
route
ForCheckoutsCompletionWithToken
:
checkout
.
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsCompletionWithToken
:
checkout
.
token
];
return
[
self
postRequestForURL
:
route
object
:[
paymentToken
JSONDictionary
]
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:[
paymentToken
JSONDictionary
]
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
[
self
handleCheckoutResponse
:
json
error
:
error
block
:
block
];
}];
}];
...
@@ -195,7 +195,7 @@
...
@@ -195,7 +195,7 @@
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckoutToken
:(
NSString
*
)
token
completion
:(
BUYDataStatusBlock
)
block
-
(
NSURLSessionDataTask
*
)
getCompletionStatusOfCheckoutToken
:(
NSString
*
)
token
completion
:(
BUYDataStatusBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCheckoutsProcessingWithToken
:
token
];
NSURL
*
route
=
[
self
url
ForCheckoutsProcessingWithToken
:
token
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
block
([
self
statusForStatusCode
:
statusCode
error
:
error
],
error
);
block
([
self
statusForStatusCode
:
statusCode
error
:
error
],
error
);
...
@@ -208,7 +208,7 @@
...
@@ -208,7 +208,7 @@
{
{
BUYAssertCheckout
(
checkout
);
BUYAssertCheckout
(
checkout
);
NSURL
*
route
=
[
self
route
ForCheckoutsShippingRatesWithToken
:
checkout
.
token
parameters
:@{
NSURL
*
route
=
[
self
url
ForCheckoutsShippingRatesWithToken
:
checkout
.
token
parameters
:@{
@"checkout"
:
@""
,
@"checkout"
:
@""
,
}];
}];
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m
View file @
38df8cfe
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
-
(
NSURLSessionDataTask
*
)
getCustomerWithID
:(
NSString
*
)
customerID
callback
:(
BUYDataCustomerBlock
)
block
-
(
NSURLSessionDataTask
*
)
getCustomerWithID
:(
NSString
*
)
customerID
callback
:(
BUYDataCustomerBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersWithID
:
customerID
];
NSURL
*
route
=
[
self
url
ForCustomersWithID
:
customerID
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
BUYCustomer
*
customer
=
nil
;
BUYCustomer
*
customer
=
nil
;
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
-
(
NSURLSessionDataTask
*
)
createCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
callback
:(
BUYDataCustomerTokenBlock
)
block
-
(
NSURLSessionDataTask
*
)
createCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
callback
:(
BUYDataCustomerTokenBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomers
];
NSURL
*
route
=
[
self
url
ForCustomers
];
return
[
self
postRequestForURL
:
route
object
:
credentials
.
JSONRepresentation
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:
credentials
.
JSONRepresentation
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
[
self
createTokenForCustomerWithCredentials
:
credentials
customerJSON
:
json
callback
:
block
];
[
self
createTokenForCustomerWithCredentials
:
credentials
customerJSON
:
json
callback
:
block
];
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
-
(
NSURLSessionDataTask
*
)
createTokenForCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerJSON
:(
NSDictionary
*
)
customerJSON
callback
:(
BUYDataCustomerTokenBlock
)
block
-
(
NSURLSessionDataTask
*
)
createTokenForCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerJSON
:(
NSDictionary
*
)
customerJSON
callback
:(
BUYDataCustomerTokenBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersToken
];
NSURL
*
route
=
[
self
url
ForCustomersToken
];
return
[
self
postRequestForURL
:
route
object
:
credentials
.
JSONRepresentation
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:
credentials
.
JSONRepresentation
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
BUYAuthenticatedResponse
*
authenticatedResponse
=
[
BUYAuthenticatedResponse
responseWithJSON
:
json
];
BUYAuthenticatedResponse
*
authenticatedResponse
=
[
BUYAuthenticatedResponse
responseWithJSON
:
json
];
...
@@ -94,7 +94,7 @@
...
@@ -94,7 +94,7 @@
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYDataStatusBlock
)
block
-
(
NSURLSessionDataTask
*
)
recoverPasswordForCustomer
:(
NSString
*
)
email
callback
:(
BUYDataStatusBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersPasswordRecovery
];
NSURL
*
route
=
[
self
url
ForCustomersPasswordRecovery
];
return
[
self
postRequestForURL
:
route
object
:@{
@"email"
:
email
}
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
postRequestForURL
:
route
object
:@{
@"email"
:
email
}
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
NSInteger
statusCode
=
[(
NSHTTPURLResponse
*
)
response
statusCode
];
...
@@ -109,7 +109,7 @@
...
@@ -109,7 +109,7 @@
-
(
NSURLSessionDataTask
*
)
renewCustomerTokenWithID
:(
NSString
*
)
customerID
callback
:(
BUYDataTokenBlock
)
block
-
(
NSURLSessionDataTask
*
)
renewCustomerTokenWithID
:(
NSString
*
)
customerID
callback
:(
BUYDataTokenBlock
)
block
{
{
if
(
self
.
customerToken
)
{
if
(
self
.
customerToken
)
{
NSURL
*
route
=
[
self
route
ForCustomersTokenRenewalWithID
:
customerID
];
NSURL
*
route
=
[
self
url
ForCustomersTokenRenewalWithID
:
customerID
];
return
[
self
putRequestForURL
:
route
object
:
nil
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
putRequestForURL
:
route
object
:
nil
completionHandler
:^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
...
@@ -134,7 +134,7 @@
...
@@ -134,7 +134,7 @@
-
(
NSURLSessionDataTask
*
)
activateCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerID
:(
NSString
*
)
customerID
customerToken
:(
NSString
*
)
customerToken
callback
:(
BUYDataCustomerTokenBlock
)
block
-
(
NSURLSessionDataTask
*
)
activateCustomerWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerID
:(
NSString
*
)
customerID
customerToken
:(
NSString
*
)
customerToken
callback
:(
BUYDataCustomerTokenBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersActivationWithID
:
customerID
parameters
:@{
NSURL
*
route
=
[
self
url
ForCustomersActivationWithID
:
customerID
parameters
:@{
@"token"
:
customerToken
,
@"token"
:
customerToken
,
}];
}];
...
@@ -152,7 +152,7 @@
...
@@ -152,7 +152,7 @@
-
(
NSURLSessionDataTask
*
)
resetPasswordWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerID
:(
NSString
*
)
customerID
customerToken
:(
NSString
*
)
customerToken
callback
:(
BUYDataCustomerTokenBlock
)
block
-
(
NSURLSessionDataTask
*
)
resetPasswordWithCredentials
:(
BUYAccountCredentials
*
)
credentials
customerID
:(
NSString
*
)
customerID
customerToken
:(
NSString
*
)
customerToken
callback
:(
BUYDataCustomerTokenBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersPasswordResetWithID
:
customerID
parameters
:@{
NSURL
*
route
=
[
self
url
ForCustomersPasswordResetWithID
:
customerID
parameters
:@{
@"token"
:
customerToken
,
@"token"
:
customerToken
,
}];
}];
...
@@ -170,7 +170,7 @@
...
@@ -170,7 +170,7 @@
-
(
NSURLSessionDataTask
*
)
getOrdersForCustomerWithCallback
:(
BUYDataOrdersBlock
)
block
-
(
NSURLSessionDataTask
*
)
getOrdersForCustomerWithCallback
:(
BUYDataOrdersBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCustomersOrders
];
NSURL
*
route
=
[
self
url
ForCustomersOrders
];
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
getRequestForURL
:
route
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
NSArray
*
orders
=
[
self
.
modelManager
ordersWithJSONDictionary
:
json
];
NSArray
*
orders
=
[
self
.
modelManager
ordersWithJSONDictionary
:
json
];
...
...
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Routing.h
View file @
38df8cfe
...
@@ -28,30 +28,30 @@
...
@@ -28,30 +28,30 @@
@interface
BUYClient
(
Routing
)
@interface
BUYClient
(
Routing
)
-
(
NSURL
*
)
route
ForAPI
;
-
(
NSURL
*
)
url
ForAPI
;
-
(
NSURL
*
)
route
ForApps
;
-
(
NSURL
*
)
url
ForApps
;
-
(
NSURL
*
)
route
ForShop
;
-
(
NSURL
*
)
url
ForShop
;
-
(
NSURL
*
)
route
ForProductListingsWithParameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
url
ForProductListingsWithParameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
route
ForCollectionListingsWithParameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
url
ForCollectionListingsWithParameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
route
ForCheckouts
;
-
(
NSURL
*
)
url
ForCheckouts
;
-
(
NSURL
*
)
route
ForCheckoutsWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
url
ForCheckoutsWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
route
ForCheckoutsProcessingWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
url
ForCheckoutsProcessingWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
route
ForCheckoutsCompletionWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
url
ForCheckoutsCompletionWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
route
ForCheckoutsShippingRatesWithToken
:(
NSString
*
)
token
parameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
url
ForCheckoutsShippingRatesWithToken
:(
NSString
*
)
token
parameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCard
;
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCard
;
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCardWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCardWithToken
:(
NSString
*
)
token
;
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCard
:(
NSNumber
*
)
giftCardID
token
:(
NSString
*
)
token
;
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCard
:(
NSNumber
*
)
giftCardID
token
:(
NSString
*
)
token
;
-
(
NSURL
*
)
route
ForCustomers
;
-
(
NSURL
*
)
url
ForCustomers
;
-
(
NSURL
*
)
route
ForCustomersOrders
;
-
(
NSURL
*
)
url
ForCustomersOrders
;
-
(
NSURL
*
)
route
ForCustomersWithID
:(
NSString
*
)
identifier
;
-
(
NSURL
*
)
url
ForCustomersWithID
:(
NSString
*
)
identifier
;
-
(
NSURL
*
)
route
ForCustomersActivationWithID
:(
NSString
*
)
identifier
parameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
url
ForCustomersActivationWithID
:(
NSString
*
)
identifier
parameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
route
ForCustomersToken
;
-
(
NSURL
*
)
url
ForCustomersToken
;
-
(
NSURL
*
)
route
ForCustomersTokenRenewalWithID
:(
NSString
*
)
customerID
;
-
(
NSURL
*
)
url
ForCustomersTokenRenewalWithID
:(
NSString
*
)
customerID
;
-
(
NSURL
*
)
route
ForCustomersPasswordRecovery
;
-
(
NSURL
*
)
url
ForCustomersPasswordRecovery
;
-
(
NSURL
*
)
route
ForCustomersPasswordResetWithID
:(
NSString
*
)
identifier
parameters
:(
NSDictionary
*
)
parameters
;
-
(
NSURL
*
)
url
ForCustomersPasswordResetWithID
:(
NSString
*
)
identifier
parameters
:(
NSDictionary
*
)
parameters
;
@end
@end
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Routing.m
View file @
38df8cfe
...
@@ -92,127 +92,127 @@
...
@@ -92,127 +92,127 @@
#pragma mark - API -
#pragma mark - API -
-
(
NSURL
*
)
route
ForShopDomain
-
(
NSURL
*
)
url
ForShopDomain
{
{
return
[
NSURL
URLWithFormat
:
@"https://%@"
,
self
.
shopDomain
];
return
[
NSURL
URLWithFormat
:
@"https://%@"
,
self
.
shopDomain
];
}
}
-
(
NSURL
*
)
route
ForAPI
-
(
NSURL
*
)
url
ForAPI
{
{
return
[[
self
route
ForShopDomain
]
appendPath
:
@"/api"
];
return
[[
self
url
ForShopDomain
]
appendPath
:
@"/api"
];
}
}
-
(
NSURL
*
)
route
ForApps
-
(
NSURL
*
)
url
ForApps
{
{
return
[[
self
route
ForAPI
]
appendFormat
:
@"/apps/%@"
,
self
.
appId
];
return
[[
self
url
ForAPI
]
appendFormat
:
@"/apps/%@"
,
self
.
appId
];
}
}
#pragma mark - Storefront -
#pragma mark - Storefront -
-
(
NSURL
*
)
route
ForShop
-
(
NSURL
*
)
url
ForShop
{
{
return
[[[
self
route
ForShopDomain
]
appendPath
:
@"/meta"
]
appendExtension
];
return
[[[
self
url
ForShopDomain
]
appendPath
:
@"/meta"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForProductListingsWithParameters
:
(
NSDictionary
*
)
parameters
-
(
NSURL
*
)
url
ForProductListingsWithParameters
:
(
NSDictionary
*
)
parameters
{
{
return
[[[[
self
route
ForApps
]
appendPath
:
@"/product_listings"
]
appendExtension
]
appendParameters
:
parameters
];
return
[[[[
self
url
ForApps
]
appendPath
:
@"/product_listings"
]
appendExtension
]
appendParameters
:
parameters
];
}
}
-
(
NSURL
*
)
route
ForCollectionListingsWithParameters
:
(
NSDictionary
*
)
parameters
-
(
NSURL
*
)
url
ForCollectionListingsWithParameters
:
(
NSDictionary
*
)
parameters
{
{
return
[[[[
self
route
ForApps
]
appendPath
:
@"/collection_listings"
]
appendExtension
]
appendParameters
:
parameters
];
return
[[[[
self
url
ForApps
]
appendPath
:
@"/collection_listings"
]
appendExtension
]
appendParameters
:
parameters
];
}
}
#pragma mark - Checkout -
#pragma mark - Checkout -
-
(
NSURL
*
)
route
ForCheckouts
-
(
NSURL
*
)
url
ForCheckouts
{
{
return
[[[
self
route
ForAPI
]
appendPath
:
@"/checkouts"
]
appendExtension
];
return
[[[
self
url
ForAPI
]
appendPath
:
@"/checkouts"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsWithToken
:
(
NSString
*
)
token
-
(
NSURL
*
)
url
ForCheckoutsWithToken
:
(
NSString
*
)
token
{
{
return
[
self
_
route
ForCheckoutsAction
:
@""
withToken
:
token
];
return
[
self
_
url
ForCheckoutsAction
:
@""
withToken
:
token
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsProcessingWithToken
:
(
NSString
*
)
token
-
(
NSURL
*
)
url
ForCheckoutsProcessingWithToken
:
(
NSString
*
)
token
{
{
return
[
self
_
route
ForCheckoutsAction
:
@"/processing"
withToken
:
token
];
return
[
self
_
url
ForCheckoutsAction
:
@"/processing"
withToken
:
token
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsCompletionWithToken
:
(
NSString
*
)
token
-
(
NSURL
*
)
url
ForCheckoutsCompletionWithToken
:
(
NSString
*
)
token
{
{
return
[
self
_
route
ForCheckoutsAction
:
@"/complete"
withToken
:
token
];
return
[
self
_
url
ForCheckoutsAction
:
@"/complete"
withToken
:
token
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsShippingRatesWithToken
:
(
NSString
*
)
token
parameters
:
(
NSDictionary
*
)
parameters
-
(
NSURL
*
)
url
ForCheckoutsShippingRatesWithToken
:
(
NSString
*
)
token
parameters
:
(
NSDictionary
*
)
parameters
{
{
return
[[
self
_
route
ForCheckoutsAction
:
@"/shipping_rates"
withToken
:
token
]
appendParameters
:
parameters
];
return
[[
self
_
url
ForCheckoutsAction
:
@"/shipping_rates"
withToken
:
token
]
appendParameters
:
parameters
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCard
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCard
{
{
return
[[[
self
route
ForCheckouts
]
appendPath
:
@"/gift_cards"
]
appendExtension
];
return
[[[
self
url
ForCheckouts
]
appendPath
:
@"/gift_cards"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCardWithToken
:
(
NSString
*
)
token
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCardWithToken
:
(
NSString
*
)
token
{
{
return
[[[[
self
route
ForCheckouts
]
appendPath
:
token
]
appendPath
:
@"/gift_cards"
]
appendExtension
];
return
[[[[
self
url
ForCheckouts
]
appendPath
:
token
]
appendPath
:
@"/gift_cards"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCheckoutsUsingGiftCard
:
(
NSNumber
*
)
giftCardID
token
:
(
NSString
*
)
token
-
(
NSURL
*
)
url
ForCheckoutsUsingGiftCard
:
(
NSNumber
*
)
giftCardID
token
:
(
NSString
*
)
token
{
{
return
[[[
self
route
ForCheckoutsUsingGiftCardWithToken
:
token
]
appendIdentifier
:
giftCardID
]
appendExtension
];
return
[[[
self
url
ForCheckoutsUsingGiftCardWithToken
:
token
]
appendIdentifier
:
giftCardID
]
appendExtension
];
}
}
#pragma mark - Customers -
#pragma mark - Customers -
-
(
NSURL
*
)
route
ForCustomers
-
(
NSURL
*
)
url
ForCustomers
{
{
return
[[[
self
route
ForAPI
]
appendPath
:
@"/customers"
]
appendExtension
];
return
[[[
self
url
ForAPI
]
appendPath
:
@"/customers"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersOrders
-
(
NSURL
*
)
url
ForCustomersOrders
{
{
return
[[[
self
route
ForCustomers
]
appendPath
:
@"/orders"
]
appendExtension
];
return
[[[
self
url
ForCustomers
]
appendPath
:
@"/orders"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersWithID
:
(
NSString
*
)
identifier
-
(
NSURL
*
)
url
ForCustomersWithID
:
(
NSString
*
)
identifier
{
{
return
[[[
self
route
ForCustomers
]
appendPath
:
identifier
]
appendExtension
];
return
[[[
self
url
ForCustomers
]
appendPath
:
identifier
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersActivationWithID
:
(
NSString
*
)
identifier
parameters
:
(
NSDictionary
*
)
parameters
-
(
NSURL
*
)
url
ForCustomersActivationWithID
:
(
NSString
*
)
identifier
parameters
:
(
NSDictionary
*
)
parameters
{
{
return
[[[[
self
route
ForCustomersWithID
:
identifier
]
appendPath
:
@"/activate"
]
appendParameters
:
parameters
]
appendExtension
];
return
[[[[
self
url
ForCustomersWithID
:
identifier
]
appendPath
:
@"/activate"
]
appendParameters
:
parameters
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersToken
-
(
NSURL
*
)
url
ForCustomersToken
{
{
return
[[[
self
route
ForCustomers
]
appendPath
:
@"/customer_token"
]
appendExtension
];
return
[[[
self
url
ForCustomers
]
appendPath
:
@"/customer_token"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersTokenRenewalWithID
:
(
NSString
*
)
customerID
-
(
NSURL
*
)
url
ForCustomersTokenRenewalWithID
:
(
NSString
*
)
customerID
{
{
return
[[[
self
route
ForCustomersWithID
:
customerID
]
appendPath
:
@"/customer_token/renew"
]
appendExtension
];
return
[[[
self
url
ForCustomersWithID
:
customerID
]
appendPath
:
@"/customer_token/renew"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersPasswordRecovery
-
(
NSURL
*
)
url
ForCustomersPasswordRecovery
{
{
return
[[[
self
route
ForCustomers
]
appendPath
:
@"/recover"
]
appendExtension
];
return
[[[
self
url
ForCustomers
]
appendPath
:
@"/recover"
]
appendExtension
];
}
}
-
(
NSURL
*
)
route
ForCustomersPasswordResetWithID
:
(
NSString
*
)
identifier
parameters
:
(
NSDictionary
*
)
parameters
-
(
NSURL
*
)
url
ForCustomersPasswordResetWithID
:
(
NSString
*
)
identifier
parameters
:
(
NSDictionary
*
)
parameters
{
{
return
[[[[
self
route
ForCustomersWithID
:
identifier
]
appendPath
:
@"/reset"
]
appendExtension
]
appendParameters
:
parameters
];
return
[[[[
self
url
ForCustomersWithID
:
identifier
]
appendPath
:
@"/reset"
]
appendExtension
]
appendParameters
:
parameters
];
}
}
#pragma mark - Utilities -
#pragma mark - Utilities -
-
(
NSURL
*
)
_
route
ForCheckoutsAction
:
(
NSString
*
)
action
withToken
:
(
NSString
*
)
token
-
(
NSURL
*
)
_
url
ForCheckoutsAction
:
(
NSString
*
)
action
withToken
:
(
NSString
*
)
token
{
{
return
[[[[
self
route
ForCheckouts
]
appendPath
:
token
]
appendPath
:
action
]
appendExtension
];
return
[[[[
self
url
ForCheckouts
]
appendPath
:
token
]
appendPath
:
action
]
appendExtension
];
}
}
@end
@end
Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Storefront.m
View file @
38df8cfe
...
@@ -49,7 +49,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
...
@@ -49,7 +49,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
-
(
NSURLSessionDataTask
*
)
getShop
:(
BUYDataShopBlock
)
block
-
(
NSURLSessionDataTask
*
)
getShop
:(
BUYDataShopBlock
)
block
{
{
return
[
self
getRequestForURL
:[
self
route
ForShop
]
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
return
[
self
getRequestForURL
:[
self
url
ForShop
]
completionHandler
:
^
(
NSDictionary
*
json
,
NSURLResponse
*
response
,
NSError
*
error
)
{
BUYShop
*
shop
=
nil
;
BUYShop
*
shop
=
nil
;
if
(
json
&&
!
error
)
{
if
(
json
&&
!
error
)
{
shop
=
[
self
.
modelManager
insertShopWithJSONDictionary
:
json
];
shop
=
[
self
.
modelManager
insertShopWithJSONDictionary
:
json
];
...
@@ -60,7 +60,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
...
@@ -60,7 +60,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
-
(
NSURLSessionDataTask
*
)
getProductsPage
:(
NSUInteger
)
page
completion
:(
BUYDataProductListBlock
)
block
-
(
NSURLSessionDataTask
*
)
getProductsPage
:(
NSUInteger
)
page
completion
:(
BUYDataProductListBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForProductListingsWithParameters
:@{
NSURL
*
route
=
[
self
url
ForProductListingsWithParameters
:@{
@"limit"
:
@
(
self
.
pageSize
),
@"limit"
:
@
(
self
.
pageSize
),
@"page"
:
@
(
page
),
@"page"
:
@
(
page
),
}];
}];
...
@@ -95,7 +95,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
...
@@ -95,7 +95,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
{
{
BUYAssert
(
productIds
,
@"Failed to get product by IDs. Product IDs array must not be nil."
);
BUYAssert
(
productIds
,
@"Failed to get product by IDs. Product IDs array must not be nil."
);
NSURL
*
route
=
[
self
route
ForProductListingsWithParameters
:@{
NSURL
*
route
=
[
self
url
ForProductListingsWithParameters
:@{
@"product_ids"
:
[
productIds
componentsJoinedByString
:
@","
],
@"product_ids"
:
[
productIds
componentsJoinedByString
:
@","
],
}];
}];
...
@@ -121,7 +121,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
...
@@ -121,7 +121,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
-
(
NSURLSessionDataTask
*
)
getCollectionsPage
:
(
NSUInteger
)
page
completion
:
(
BUYDataCollectionsListBlock
)
block
-
(
NSURLSessionDataTask
*
)
getCollectionsPage
:
(
NSUInteger
)
page
completion
:
(
BUYDataCollectionsListBlock
)
block
{
{
NSURL
*
route
=
[
self
route
ForCollectionListingsWithParameters
:@{
NSURL
*
route
=
[
self
url
ForCollectionListingsWithParameters
:@{
@"limit"
:
@
(
self
.
pageSize
),
@"limit"
:
@
(
self
.
pageSize
),
@"page"
:
@
(
page
),
@"page"
:
@
(
page
),
}];
}];
...
@@ -145,7 +145,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
...
@@ -145,7 +145,7 @@ static NSString * const BUYCollectionsKey = @"collection_listings";
{
{
BUYAssert
(
collectionId
,
@"Failed to get products page. Invalid collectionID."
);
BUYAssert
(
collectionId
,
@"Failed to get products page. Invalid collectionID."
);
NSURL
*
route
=
[
self
route
ForProductListingsWithParameters
:@{
NSURL
*
route
=
[
self
url
ForProductListingsWithParameters
:@{
@"collection_id"
:
collectionId
,
@"collection_id"
:
collectionId
,
@"limit"
:
@
(
self
.
pageSize
),
@"limit"
:
@
(
self
.
pageSize
),
@"page"
:
@
(
page
),
@"page"
:
@
(
page
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment