diff --git a/WordPressKit.podspec b/WordPressKit.podspec index b9e51aeb..1223909a 100644 --- a/WordPressKit.podspec +++ b/WordPressKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "WordPressKit" - s.version = "4.4.0" + s.version = "4.5.0-beta.1" s.summary = "WordPressKit offers a clean and simple WordPress.com and WordPress.org API." s.description = <<-DESC diff --git a/WordPressKit/WordPressComServiceRemote.h b/WordPressKit/WordPressComServiceRemote.h index 95457857..cb42afb2 100644 --- a/WordPressKit/WordPressComServiceRemote.h +++ b/WordPressKit/WordPressComServiceRemote.h @@ -48,6 +48,26 @@ typedef void(^WordPressComServiceFailureBlock)(NSError *error); success:(WordPressComServiceSuccessBlock)success failure:(WordPressComServiceFailureBlock)failure; +/** + * @brief Create a new WordPress.com account from Apple ID credentials. + * + * @param token Token provided by Apple. + * @param email Apple email to use for new account. + * @param fullName The user's full name for the new account. Formed from the fullname + * property in the Apple ID credential. + * @param clientID wpcom client ID. + * @param clientSecret wpcom secret. + * @param success success block. + * @param failure failure block. + */ +- (void)createWPComAccountWithApple:(NSString *)token + andEmail:(NSString *)email + andFullName:(NSString *)fullName + andClientID:(NSString *)clientID + andClientSecret:(NSString *)clientSecret + success:(WordPressComServiceSuccessBlock)success + failure:(WordPressComServiceFailureBlock)failure; + /** * @brief Validates a WordPress.com blog with the specified parameters. * diff --git a/WordPressKit/WordPressComServiceRemote.m b/WordPressKit/WordPressComServiceRemote.m index f4010f22..5d77127f 100644 --- a/WordPressKit/WordPressComServiceRemote.m +++ b/WordPressKit/WordPressComServiceRemote.m @@ -64,12 +64,47 @@ - (void)createWPComAccountWithEmail:(NSString *)email [self.wordPressComRestApi POST:requestUrl parameters:params success:successBlock failure:failureBlock]; } -// API v1 POST /users/social/new - (void)createWPComAccountWithGoogle:(NSString *)token andClientID:(NSString *)clientID andClientSecret:(NSString *)clientSecret success:(WordPressComServiceSuccessBlock)success failure:(WordPressComServiceFailureBlock)failure +{ + NSDictionary *params = @{ + @"client_id": clientID, + @"client_secret": clientSecret, + @"id_token": token, + @"service": @"google", + @"signup_flow_name": @"social", + }; + + [self createSocialWPComAccountWithParams:params success:success failure:failure]; +} + +- (void)createWPComAccountWithApple:(NSString *)token + andEmail:(NSString *)email + andFullName:(NSString *)fullName + andClientID:(NSString *)clientID + andClientSecret:(NSString *)clientSecret + success:(WordPressComServiceSuccessBlock)success + failure:(WordPressComServiceFailureBlock)failure +{ + NSDictionary *params = @{ + @"client_id": clientID, + @"client_secret": clientSecret, + @"id_token": token, + @"service": @"apple", + @"signup_flow_name": @"social", + @"user_email": email, + @"user_name": fullName, + }; + + [self createSocialWPComAccountWithParams:params success:success failure:failure]; +} + +- (void)createSocialWPComAccountWithParams:(NSDictionary *)params + success:(WordPressComServiceSuccessBlock)success + failure:(WordPressComServiceFailureBlock)failure { void (^successBlock)(id, NSHTTPURLResponse *) = ^(id responseObject, NSHTTPURLResponse *httpResponse) { success(responseObject); @@ -80,16 +115,7 @@ - (void)createWPComAccountWithGoogle:(NSString *)token failure(errorWithLocalizedMessage); }; - NSDictionary *params = @{ - @"client_id": clientID, - @"client_secret": clientSecret, - @"id_token": token, - @"service": @"google", - @"signup_flow_name": @"social", - }; - NSString *requestUrl = [self pathForEndpoint:@"users/social/new" withVersion:ServiceRemoteWordPressComRESTApiVersion_1_0]; - [self.wordPressComRestApi POST:requestUrl parameters:params success:successBlock failure:failureBlock]; } diff --git a/WordPressKitTests/WPStatsServiceRemoteTests.m b/WordPressKitTests/WPStatsServiceRemoteTests.m index dd09d777..195d9b24 100644 --- a/WordPressKitTests/WPStatsServiceRemoteTests.m +++ b/WordPressKitTests/WPStatsServiceRemoteTests.m @@ -865,7 +865,6 @@ - (void)testPostDetails XCTAssertNotNil(monthsYearsItems); XCTAssertTrue([[monthsYearsItems[0] label] isEqualToString:@"2014"]); XCTAssertTrue([[monthsYearsItems[1] label] isEqualToString:@"2015"]); - XCTAssertTrue([[[monthsYearsItems[0] children][0] label] isEqualToString:@"June"]); XCTAssertNotNil(averagePerDayItems); XCTAssertEqual(2, averagePerDayItems.count);