From b3601806bf71d4f192fd1761cf4f9576ee9276d0 Mon Sep 17 00:00:00 2001 From: Dima Bart <dima.bart01@gmail.com> Date: Tue, 17 May 2016 10:12:47 -0400 Subject: [PATCH] Move BUYAuthenticatedResponse into separate file. --- Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj | 14 ++++++++++++++ Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m | 27 +++------------------------ Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.h | 37 +++++++++++++++++++++++++++++++++++++ Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.m | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 24 deletions(-) create mode 100644 Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.h create mode 100644 Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.m diff --git a/Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj b/Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj index 8836e04..eb68e14 100644 --- a/Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj +++ b/Mobile Buy SDK/Mobile Buy SDK.xcodeproj/project.pbxproj @@ -351,6 +351,10 @@ 9A0B0C731CEB52B90037D68F /* BUYClient+Checkout.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A0B0C701CEB52B90037D68F /* BUYClient+Checkout.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9A0B0C741CEB52B90037D68F /* BUYClient+Checkout.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B0C711CEB52B90037D68F /* BUYClient+Checkout.m */; }; 9A0B0C751CEB52B90037D68F /* BUYClient+Checkout.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B0C711CEB52B90037D68F /* BUYClient+Checkout.m */; }; + 9A0B0C781CEB5BBD0037D68F /* BUYAuthenticatedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A0B0C761CEB5BBD0037D68F /* BUYAuthenticatedResponse.h */; }; + 9A0B0C791CEB5BBD0037D68F /* BUYAuthenticatedResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A0B0C761CEB5BBD0037D68F /* BUYAuthenticatedResponse.h */; }; + 9A0B0C7A1CEB5BBD0037D68F /* BUYAuthenticatedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B0C771CEB5BBD0037D68F /* BUYAuthenticatedResponse.m */; }; + 9A0B0C7B1CEB5BBD0037D68F /* BUYAuthenticatedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B0C771CEB5BBD0037D68F /* BUYAuthenticatedResponse.m */; }; 9A102D1B1CDD1F960026CC43 /* BUYErrorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A102D1A1CDD1F960026CC43 /* BUYErrorTests.m */; }; 9A102D1E1CDD25980026CC43 /* BUYOptionValueTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A102D1D1CDD25980026CC43 /* BUYOptionValueTests.m */; }; 9A47CEFD1CE39F6000A6D5BA /* BUYCreditCardToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A47CEFB1CE39F5B00A6D5BA /* BUYCreditCardToken.m */; }; @@ -631,6 +635,8 @@ 9A0B0C6B1CEB4D300037D68F /* BUYClient+Storefront.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BUYClient+Storefront.m"; sourceTree = "<group>"; }; 9A0B0C701CEB52B90037D68F /* BUYClient+Checkout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BUYClient+Checkout.h"; sourceTree = "<group>"; }; 9A0B0C711CEB52B90037D68F /* BUYClient+Checkout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "BUYClient+Checkout.m"; sourceTree = "<group>"; }; + 9A0B0C761CEB5BBD0037D68F /* BUYAuthenticatedResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BUYAuthenticatedResponse.h; sourceTree = "<group>"; }; + 9A0B0C771CEB5BBD0037D68F /* BUYAuthenticatedResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BUYAuthenticatedResponse.m; sourceTree = "<group>"; }; 9A102D1A1CDD1F960026CC43 /* BUYErrorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BUYErrorTests.m; sourceTree = "<group>"; }; 9A102D1D1CDD25980026CC43 /* BUYOptionValueTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BUYOptionValueTests.m; sourceTree = "<group>"; }; 9A47CEF81CE39EC200A6D5BA /* BUYPaymentToken.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BUYPaymentToken.h; sourceTree = "<group>"; }; @@ -1044,6 +1050,8 @@ F773744419C779C20039681C /* Models */ = { isa = PBXGroup; children = ( + 9A0B0C761CEB5BBD0037D68F /* BUYAuthenticatedResponse.h */, + 9A0B0C771CEB5BBD0037D68F /* BUYAuthenticatedResponse.m */, 8498DCB91CDD1FA400BD12A8 /* BUYAccountCredentials.h */, 8498DCBA1CDD1FA400BD12A8 /* BUYAccountCredentials.m */, F77374AA19C796BD0039681C /* BUYCreditCard.h */, @@ -1226,6 +1234,8 @@ 9019315F1BC5B9BC00D1134E /* BUYProductHeaderCell.h in Headers */, 901931601BC5B9BC00D1134E /* BUYProductViewErrorView.h in Headers */, 901931611BC5B9BC00D1134E /* BUYClient.h in Headers */, + 901931631BC5B9BC00D1134E /* BUYGradientView.h in Headers */, + 9A0B0C791CEB5BBD0037D68F /* BUYAuthenticatedResponse.h in Headers */, 849810971CB7E07900CFAB58 /* BUYFlatCollectionTransformer.h in Headers */, 901931641BC5B9BC00D1134E /* BUYCartLineItem.h in Headers */, 8498DCAE1CDD1B2F00BD12A8 /* BUYError+BUYAdditions.h in Headers */, @@ -1329,6 +1339,8 @@ BEB74A6D1B5564200005A300 /* BUYProductHeaderCell.h in Headers */, 903BCC7C1B7D1C2D00C21FEB /* BUYProductViewErrorView.h in Headers */, BE9A64471B503C8B0033E558 /* BUYClient.h in Headers */, + BEB74A651B5563FF0005A300 /* BUYGradientView.h in Headers */, + 9A0B0C781CEB5BBD0037D68F /* BUYAuthenticatedResponse.h in Headers */, 849810961CB7E07900CFAB58 /* BUYFlatCollectionTransformer.h in Headers */, 9003969B1B601DF400226B73 /* BUYCartLineItem.h in Headers */, 8498DCAC1CDD1B2F00BD12A8 /* BUYError+BUYAdditions.h in Headers */, @@ -1554,6 +1566,7 @@ 84DD12AE1CC63FE600A2442D /* _BUYProductVariant.m in Sources */, 84B0A7211CDD261100253EB0 /* BUYSerializable.m in Sources */, 9A47CEFE1CE39F6100A6D5BA /* BUYCreditCardToken.m in Sources */, + 9A0B0C7B1CEB5BBD0037D68F /* BUYAuthenticatedResponse.m in Sources */, 901930F21BC5B9BC00D1134E /* BUYOrder.m in Sources */, 849810991CB7E07900CFAB58 /* BUYFlatCollectionTransformer.m in Sources */, 84DD12A41CC63FE600A2442D /* _BUYLineItem.m in Sources */, @@ -1689,6 +1702,7 @@ 84DD12961CC63FE600A2442D /* _BUYProductVariant.m in Sources */, 84B0A7201CDD261100253EB0 /* BUYSerializable.m in Sources */, 9A47CEFD1CE39F6000A6D5BA /* BUYCreditCardToken.m in Sources */, + 9A0B0C7A1CEB5BBD0037D68F /* BUYAuthenticatedResponse.m in Sources */, 90E83BC51B9F550E00C95A1B /* BUYOrder.m in Sources */, 849810981CB7E07900CFAB58 /* BUYFlatCollectionTransformer.m in Sources */, 84DD128C1CC63FE600A2442D /* _BUYLineItem.m in Sources */, diff --git a/Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m b/Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m index be7279c..9f13c38 100644 --- a/Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m +++ b/Mobile Buy SDK/Mobile Buy SDK/Data/BUYClient+Customers.m @@ -30,31 +30,10 @@ #import "NSDateFormatter+BUYAdditions.h" #import "BUYCustomer.h" #import "BUYAccountCredentials.h" +#import "BUYAuthenticatedResponse.h" #import "BUYOrder.h" #import "BUYShopifyErrorCodes.h" -@interface BUYAuthenticatedResponse : NSObject -+ (BUYAuthenticatedResponse *)responseFromJSON:(NSDictionary *)json; -@property (nonatomic, copy) NSString *accessToken; -@property (nonatomic, copy) NSDate *expiry; -@property (nonatomic, copy) NSString *customerID; -@end - -@implementation BUYAuthenticatedResponse - -+ (BUYAuthenticatedResponse *)responseFromJSON:(NSDictionary *)json -{ - BUYAuthenticatedResponse *response = [BUYAuthenticatedResponse new]; - NSDictionary *access = json[@"customer_access_token"]; - response.accessToken = access[@"access_token"]; - NSDateFormatter *formatter = [NSDateFormatter dateFormatterForPublications]; - response.expiry = [formatter dateFromString:access[@"expires_at"]]; - response.customerID = [NSString stringWithFormat:@"%@", access[@"customer_id"]]; - return response; -} - -@end - @implementation BUYClient (Customers) #pragma mark - Customer @@ -89,7 +68,7 @@ NSURL *route = [self routeForCustomersToken]; return [self postRequestForURL:route object:credentials.JSONRepresentation completionHandler:^(NSDictionary *json, NSURLResponse *response, NSError *error) { if (json && !error) { - BUYAuthenticatedResponse *authenticatedResponse = [BUYAuthenticatedResponse responseFromJSON:json]; + BUYAuthenticatedResponse *authenticatedResponse = [BUYAuthenticatedResponse responseWithJSON:json]; self.customerToken = authenticatedResponse.accessToken; if (!customerJSON) { @@ -136,7 +115,7 @@ NSString *accessToken = nil; if (json && !error) { - BUYAuthenticatedResponse *authenticatedResponse = [BUYAuthenticatedResponse responseFromJSON:json]; + BUYAuthenticatedResponse *authenticatedResponse = [BUYAuthenticatedResponse responseWithJSON:json]; accessToken = authenticatedResponse.accessToken; } diff --git a/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.h b/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.h new file mode 100644 index 0000000..772adf4 --- /dev/null +++ b/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.h @@ -0,0 +1,37 @@ +// +// BUYAuthenticatedResponse.h +// Mobile Buy SDK +// +// Created by Shopify. +// Copyright (c) 2016 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 <Foundation/Foundation.h> + +@interface BUYAuthenticatedResponse : NSObject + +@property (nonatomic, copy, readonly) NSString *accessToken; +@property (nonatomic, copy, readonly) NSDate *expiry; +@property (nonatomic, copy, readonly) NSString *customerID; + ++ (BUYAuthenticatedResponse *)responseWithJSON:(NSDictionary *)json; + +@end diff --git a/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.m b/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.m new file mode 100644 index 0000000..679df28 --- /dev/null +++ b/Mobile Buy SDK/Mobile Buy SDK/Models/BUYAuthenticatedResponse.m @@ -0,0 +1,51 @@ +// +// BUYAuthenticatedResponse.m +// Mobile Buy SDK +// +// Created by Shopify. +// Copyright (c) 2016 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 "BUYAuthenticatedResponse.h" +#import "NSDateFormatter+BUYAdditions.h" + +@implementation BUYAuthenticatedResponse + ++ (BUYAuthenticatedResponse *)responseWithJSON:(NSDictionary *)json +{ + return [[[self class] alloc] initWithJSON:json]; +} + +- (instancetype)initWithJSON:(NSDictionary *)json +{ + self = [super init]; + if (self) { + NSDateFormatter *formatter = [NSDateFormatter dateFormatterForPublications]; + NSDictionary *access = json[@"customer_access_token"]; + + _accessToken = access[@"access_token"]; + _expiry = [formatter dateFromString:access[@"expires_at"]]; + _customerID = [NSString stringWithFormat:@"%@", access[@"customer_id"]]; + } + return self; +} + +@end -- libgit2 0.26.0