Commit 426f4dbe by Brent Gulanowski

Update customer API to remove `customerID` argument when not needed.

The customerID is available from the `BUYClient.customerToken` property, which must be set before using these methods.
parent a5f35086
No related merge requests found
......@@ -27,9 +27,10 @@
#import <Buy/BUYClient.h>
NS_ASSUME_NONNULL_BEGIN
@class BUYAccountCredentials;
@class BUYCustomer;
@class BUYCustomerToken;
@class BUYOrder;
@class BUYAccountCredentials;
/**
* Return block containing a BUYCustomer object for an existing customer of the shop
......@@ -46,7 +47,7 @@ typedef void (^BUYDataCustomerBlock)(BUYCustomer * _Nullable customer, NSError *
* @param token An authentication token to retrieve the customer later. Store this token securely on the device.
* @param error An optional NSError
*/
typedef void (^BUYDataCustomerTokenBlock)(BUYCustomer * _Nullable customer, NSString * _Nullable token, NSError * _Nullable error);
typedef void (^BUYDataCustomerTokenBlock)(BUYCustomer * _Nullable customer, BUYCustomerToken * _Nullable token, NSError * _Nullable error);
/**
* Return block containing a customer auth token
......@@ -86,7 +87,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return The associated BUYRequestOperation
*/
- (NSOperation *)getCustomerWithID:(NSString *)customerID callback:(BUYDataCustomerBlock)block;
- (NSOperation *)getCustomerCallback:(BUYDataCustomerBlock)block;
#pragma mark - Customer -
......@@ -127,7 +128,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return The associated BUYRequestOperation
*/
- (NSOperation *)updateCustomerWithCredentials:(BUYAccountCredentials *)credentials customerID:(NSString *)customerID callback:(BUYDataCustomerBlock)block;
- (NSOperation *)updateCustomerWithCredentials:(BUYAccountCredentials *)credentials callback:(BUYDataCustomerBlock)block;
/**
* PUT /api/customers/:customer_id/reset
......@@ -153,7 +154,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return the associated BUYRequestOperation
*/
- (NSOperation *)renewCustomerTokenWithID:(NSString *)customerID callback:(BUYDataTokenBlock)block;
- (NSOperation *)renewCustomerTokenCallback:(BUYDataTokenBlock)block;
#pragma mark - Login -
......@@ -179,7 +180,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return The associated BUYRequestOperation
*/
- (NSOperation *)logoutCustomerID:(NSString *)customerID callback:(BUYDataStatusBlock)block;
- (NSOperation *)logoutCustomerCallback:(BUYDataStatusBlock)block;
/**
* POST /api/customers/recover
......@@ -203,7 +204,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return The associated BUYRequestOperation
*/
- (NSOperation *)getOrdersForCustomerWithID:(NSString *)customerID callback:(BUYDataOrdersBlock)block;
- (NSOperation *)getOrdersForCustomerCallback:(BUYDataOrdersBlock)block;
/**
* GET /api/customers/:customer_id/orders/:id
......@@ -215,7 +216,7 @@ typedef void (^BUYDataOrderBlock)(BUYOrder * _Nullable order, NSError * _Nullabl
*
* @return The associated BUYRequestOperation
*/
- (NSOperation *)getOrderWithID:(NSNumber *)orderID customerID:(NSString *)customerID callback:(BUYDataOrderBlock)block;
- (NSOperation *)getOrderWithID:(NSNumber *)orderID callback:(BUYDataOrderBlock)block;
@end
......
......@@ -27,20 +27,21 @@
#import "BUYClient+Customers.h"
#import "BUYClient+Internal.h"
#import "BUYClient+Routing.h"
#import "NSDateFormatter+BUYAdditions.h"
#import "BUYCustomer.h"
#import "BUYAccountCredentials.h"
#import "BUYCustomer.h"
#import "BUYCustomerToken.h"
#import "BUYOrder.h"
#import "BUYShopifyErrorCodes.h"
#import "NSDateFormatter+BUYAdditions.h"
@implementation BUYClient (Customers)
#pragma mark - Getting -
- (NSOperation *)getCustomerWithID:(NSString *)customerID callback:(BUYDataCustomerBlock)block
- (NSOperation *)getCustomerCallback:(BUYDataCustomerBlock)block
{
NSURL *url = [self urlForCustomersWithID:customerID];
NSURL *url = [self urlForLoggedInCustomer];
return [self getRequestForURL:url completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
BUYCustomer *customer = nil;
if (json && !error) {
......@@ -81,9 +82,9 @@
}];
}
- (NSOperation *)updateCustomerWithCredentials:(BUYAccountCredentials *)credentials customerID:(NSString *)customerID callback:(BUYDataCustomerBlock)block
- (NSOperation *)updateCustomerWithCredentials:(BUYAccountCredentials *)credentials callback:(BUYDataCustomerBlock)block
{
NSURL *url = [self urlForCustomersWithID:customerID];
NSURL *url = [self urlForLoggedInCustomer];
return [self putRequestForURL:url object:credentials.JSONRepresentation completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
BUYCustomer *customer = nil;
if (json && !error) {
......@@ -111,16 +112,16 @@
#pragma mark - Token -
- (NSOperation *)renewCustomerTokenWithID:(NSString *)customerID callback:(BUYDataTokenBlock)block
- (NSOperation *)renewCustomerTokenCallback:(BUYDataTokenBlock)block
{
if (self.customerToken) {
NSURL *url = [self urlForCustomersTokenRenewalWithID:customerID];
NSURL *url = [self urlForCustomersTokenRenewalWithID:self.customerToken.customerID];
return [self putRequestForURL:url object:nil completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
NSString *accessToken = nil;
if (json && !error) {
BUYCustomerToken *authenticatedResponse = [BUYCustomerToken customerTokenWithJSON:json];
accessToken = authenticatedResponse.accessToken;
BUYCustomerToken *customerToken = [BUYCustomerToken customerTokenWithJSON:json];
accessToken = customerToken.accessToken;
}
block(accessToken, error);
......@@ -134,9 +135,9 @@
#pragma mark - Login -
- (NSOperation *)logoutCustomerID:(NSString *)customerID callback:(BUYDataStatusBlock)block
- (NSOperation *)logoutCustomerCallback:(BUYDataStatusBlock)block
{
NSURL *url = [self urlForCustomersTokenWithID:customerID];
NSURL *url = [self urlForLoggedInCustomer];
return [self deleteRequestForURL:url completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
block(response.statusCode, error);
}];
......@@ -157,9 +158,9 @@
#pragma mark - Orders -
- (NSOperation *)getOrdersForCustomerWithID:(NSString *)customerID callback:(BUYDataOrdersBlock)block
- (NSOperation *)getOrdersForCustomerCallback:(BUYDataOrdersBlock)block
{
NSURL *url = [self urlForCustomersOrdersWithID:customerID];
NSURL *url = [self urlForLoggedInCustomer];
return [self getRequestForURL:url completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
if (json && !error) {
NSArray *orders = [self.modelManager ordersWithJSONDictionary:json];
......@@ -170,9 +171,9 @@
}];
}
- (NSOperation *)getOrderWithID:(NSNumber *)orderID customerID:(NSString *)customerID callback:(BUYDataOrderBlock)block
- (NSOperation *)getOrderWithID:(NSNumber *)orderID callback:(BUYDataOrderBlock)block
{
NSURL *url = [self urlForCustomersOrdersWithID:customerID orderID:orderID];
NSURL *url = [self urlForCustomersOrdersWithID:self.customerToken.customerID orderID:orderID];
return [self getRequestForURL:url completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
if (json && !error) {
BUYOrder *order = [self.modelManager orderWithJSONDictionary:json];
......@@ -190,17 +191,15 @@
NSURL *url = [self urlForCustomersToken];
return [self postRequestForURL:url object:credentials.JSONRepresentation completionHandler:^(NSDictionary *json, NSHTTPURLResponse *response, NSError *error) {
if (json && !error) {
BUYCustomerToken *authenticatedResponse = [BUYCustomerToken customerTokenWithJSON:json];
self.customerToken = authenticatedResponse;
self.customerToken = [BUYCustomerToken customerTokenWithJSON:json];
if (!customerJSON) {
[self getCustomerWithID:authenticatedResponse.customerID callback:^(BUYCustomer *customer, NSError *error) {
block(customer, self.customerToken.accessToken, error);
[self getCustomerCallback:^(BUYCustomer *customer, NSError *error) {
block(customer, self.customerToken, error);
}];
}
else {
BUYCustomer *customer = [self.modelManager customerWithJSONDictionary:customerJSON];
block(customer, self.customerToken.accessToken, error);
block(customer, self.customerToken, error);
}
}
else {
......
......@@ -49,6 +49,7 @@
- (NSURL *)urlForCustomers;
- (NSURL *)urlForCustomersToken;
- (NSURL *)urlForCustomersPasswordRecovery;
- (NSURL *)urlForLoggedInCustomer;
- (NSURL *)urlForCustomersOrdersWithID:(NSString *)identifier;
- (NSURL *)urlForCustomersOrdersWithID:(NSString *)identifier orderID:(NSNumber *)orderID;
......
......@@ -25,6 +25,7 @@
//
#import "BUYClient+Routing.h"
#import "BUYCustomerToken.h"
#pragma mark - NSURL (Private Routing) -
......@@ -188,6 +189,11 @@
return [[[self urlForCustomers] appendPath:@"/recover"] appendExtension];
}
- (NSURL *)urlForLoggedInCustomer
{
return [self urlForCustomersWithID:self.customerToken.customerID];
}
#pragma mark - Customer With ID -
- (NSURL *)urlForCustomersWithID:(NSString *)identifier
......
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