From 074fc43d7b404acbe0b481c6d6e3d9e46b162025 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 12:47:32 +0100 Subject: [PATCH 01/19] Add search parameter to `getWPThemesPage` method --- Sources/WordPressKit/Services/ThemeServiceRemote.h | 2 ++ Sources/WordPressKit/Services/ThemeServiceRemote.m | 14 ++++++++++---- .../Tests/ThemeServiceRemoteTests.m | 1 + 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.h b/Sources/WordPressKit/Services/ThemeServiceRemote.h index 3ee51c4a..3235a327 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.h +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.h @@ -60,6 +60,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * * @param freeOnly Only fetch free themes, if false all WP themes will be returned * @param page Results page to return. + * @param search Search term to filter themes. Can be nil or empty string. * @param success The success handler. Can be nil. * @param failure The failure handler. Can be nil. * @@ -67,6 +68,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); */ - (NSProgress *)getWPThemesPage:(NSInteger)page freeOnly:(BOOL)freeOnly + search:(NSString *)search success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure; diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index 97d6e60e..7d7511c8 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -99,6 +99,7 @@ - (NSProgress *)getThemeId:(NSString*)themeId - (NSProgress *)getWPThemesPage:(NSInteger)page freeOnly:(BOOL)freeOnly + search:(NSString *)search success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure { @@ -107,10 +108,15 @@ - (NSProgress *)getWPThemesPage:(NSInteger)page NSString *requestUrl = [self pathForEndpoint:@"themes" withVersion:WordPressComRESTAPIVersion_1_2]; - NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, - ThemeRequestNumberKey: @(ThemeRequestNumberValue), - ThemeRequestPageKey: @(page), - }; + NSMutableDictionary *parameters = [@{ + ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, + ThemeRequestNumberKey: @(ThemeRequestNumberValue), + ThemeRequestPageKey: @(page) + } mutableCopy]; + + if (search && search.length > 0) { + parameters[@"search"] = search; + } return [self getThemesWithRequestUrl:requestUrl page:page diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index e0a6ac7f..435c57e3 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -225,6 +225,7 @@ - (void)testThatGetThemesWorks XCTAssertNoThrow([service getWPThemesPage:1 freeOnly:NO + search:nil success:successBlock failure:nil]); } From a5a49e7bc1b3d15a30ae81254b2ccc504e77e848 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 13:01:51 +0100 Subject: [PATCH 02/19] update: Package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 965f2427..d913a0b0 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19034191/WordPressKit.zip", - checksum: "34f108cba86b5e4334d1c9af79946dbb8b665e270bdd14bc8f7bc0ba7a898583" + url: "https://github.com/user-attachments/files/19318154/WordPressKit.zip", + checksum: "769f4ec0c4e3712844af318962af7ffb417c8723c61688c913c381e6ac57e8b6" ), ] ) From affb54f7448c3f3d1ede99a37f12dd5d48f8e830 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 14:19:37 +0100 Subject: [PATCH 03/19] Revert "update: Package.swift" This reverts commit a5a49e7bc1b3d15a30ae81254b2ccc504e77e848. --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index d913a0b0..965f2427 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19318154/WordPressKit.zip", - checksum: "769f4ec0c4e3712844af318962af7ffb417c8723c61688c913c381e6ac57e8b6" + url: "https://github.com/user-attachments/files/19034191/WordPressKit.zip", + checksum: "34f108cba86b5e4334d1c9af79946dbb8b665e270bdd14bc8f7bc0ba7a898583" ), ] ) From 244b6c474adb012ac9211a9872dfdb90f1890f64 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 14:20:06 +0100 Subject: [PATCH 04/19] Revert "Add search parameter to `getWPThemesPage` method" This reverts commit 074fc43d7b404acbe0b481c6d6e3d9e46b162025. --- Sources/WordPressKit/Services/ThemeServiceRemote.h | 2 -- Sources/WordPressKit/Services/ThemeServiceRemote.m | 14 ++++---------- .../Tests/ThemeServiceRemoteTests.m | 1 - 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.h b/Sources/WordPressKit/Services/ThemeServiceRemote.h index 3235a327..3ee51c4a 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.h +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.h @@ -60,7 +60,6 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * * @param freeOnly Only fetch free themes, if false all WP themes will be returned * @param page Results page to return. - * @param search Search term to filter themes. Can be nil or empty string. * @param success The success handler. Can be nil. * @param failure The failure handler. Can be nil. * @@ -68,7 +67,6 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); */ - (NSProgress *)getWPThemesPage:(NSInteger)page freeOnly:(BOOL)freeOnly - search:(NSString *)search success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure; diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index 7d7511c8..97d6e60e 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -99,7 +99,6 @@ - (NSProgress *)getThemeId:(NSString*)themeId - (NSProgress *)getWPThemesPage:(NSInteger)page freeOnly:(BOOL)freeOnly - search:(NSString *)search success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure { @@ -108,15 +107,10 @@ - (NSProgress *)getWPThemesPage:(NSInteger)page NSString *requestUrl = [self pathForEndpoint:@"themes" withVersion:WordPressComRESTAPIVersion_1_2]; - NSMutableDictionary *parameters = [@{ - ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, - ThemeRequestNumberKey: @(ThemeRequestNumberValue), - ThemeRequestPageKey: @(page) - } mutableCopy]; - - if (search && search.length > 0) { - parameters[@"search"] = search; - } + NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, + ThemeRequestNumberKey: @(ThemeRequestNumberValue), + ThemeRequestPageKey: @(page), + }; return [self getThemesWithRequestUrl:requestUrl page:page diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index 435c57e3..e0a6ac7f 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -225,7 +225,6 @@ - (void)testThatGetThemesWorks XCTAssertNoThrow([service getWPThemesPage:1 freeOnly:NO - search:nil success:successBlock failure:nil]); } From 842c9dc2e6140891b96154ea386720b96fb09aa5 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 19:11:53 +0100 Subject: [PATCH 05/19] Add search parameter to theme retrieval methods --- .../WordPressKit/Services/ThemeServiceRemote.h | 4 ++++ .../WordPressKit/Services/ThemeServiceRemote.m | 18 +++++++++++++----- .../Tests/ThemeServiceRemoteTests.m | 8 +++++--- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.h b/Sources/WordPressKit/Services/ThemeServiceRemote.h index 3ee51c4a..f0206b90 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.h +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.h @@ -58,6 +58,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * @details Includes premium themes even if not purchased. Don't call this method if the list * you want to retrieve is for a specific blog. Use getThemesForBlogId instead. * + * @param search Search term for filtering themes. Cannot be nil. * @param freeOnly Only fetch free themes, if false all WP themes will be returned * @param page Results page to return. * @param success The success handler. Can be nil. @@ -66,6 +67,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * @returns A progress object that can be used to track progress and/or cancel the task */ - (NSProgress *)getWPThemesPage:(NSInteger)page + search:(NSString *)search freeOnly:(BOOL)freeOnly success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure; @@ -79,6 +81,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * this method and not getThemes. * * @param blogId The ID of the blog to get the themes for. Cannot be nil. + * @param search Search term for filtering themes. Cannot be nil. * @param page Results page to return. * @param success The success handler. Can be nil. * @param failure The failure handler. Can be nil. @@ -86,6 +89,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * @returns A progress object that can be used to track progress and/or cancel the task */ - (NSProgress *)getThemesForBlogId:(NSNumber *)blogId + search:(NSString *)search page:(NSInteger)page success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure; diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index 97d6e60e..288b78ee 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -13,6 +13,8 @@ static NSString* const ThemeRequestNumberKey = @"number"; static NSInteger const ThemeRequestNumberValue = 50; static NSString* const ThemeRequestPageKey = @"page"; +static NSString* const ThemeRequestSearchKey = @"search"; +static NSString* const ThemeRequestFilterKey = @"filter"; @implementation ThemeServiceRemote @@ -98,11 +100,13 @@ - (NSProgress *)getThemeId:(NSString*)themeId } - (NSProgress *)getWPThemesPage:(NSInteger)page + search:(NSString *)search freeOnly:(BOOL)freeOnly success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure { NSParameterAssert(page > 0); + NSParameterAssert([search isKindOfClass:[NSString class]]); NSString *requestUrl = [self pathForEndpoint:@"themes" withVersion:WordPressComRESTAPIVersion_1_2]; @@ -110,7 +114,8 @@ - (NSProgress *)getWPThemesPage:(NSInteger)page NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, ThemeRequestNumberKey: @(ThemeRequestNumberValue), ThemeRequestPageKey: @(page), - }; + ThemeRequestSearchKey: search + }; return [self getThemesWithRequestUrl:requestUrl page:page @@ -143,17 +148,20 @@ - (NSProgress *)getThemesPage:(NSInteger)page } - (NSProgress *)getThemesForBlogId:(NSNumber *)blogId - page:(NSInteger)page - success:(ThemeServiceRemoteThemesRequestSuccessBlock)success - failure:(ThemeServiceRemoteFailureBlock)failure + search:(NSString *)search + page:(NSInteger)page + success:(ThemeServiceRemoteThemesRequestSuccessBlock)success + failure:(ThemeServiceRemoteFailureBlock)failure { NSParameterAssert([blogId isKindOfClass:[NSNumber class]]); + NSParameterAssert([search isKindOfClass:[NSString class]]); NSParameterAssert(page > 0); NSProgress *progress = [self getThemesForBlogId:blogId page:page apiVersion:WordPressComRESTAPIVersion_1_2 - params:@{ThemeRequestTierKey: ThemeRequestTierAllValue} + params:@{ThemeRequestTierKey: ThemeRequestTierAllValue, + ThemeRequestFilterKey: [NSString stringWithFormat:@"subject:%@", search]} success:success failure:failure]; diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index e0a6ac7f..2d10a97d 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -224,6 +224,7 @@ - (void)testThatGetThemesWorks }]; XCTAssertNoThrow([service getWPThemesPage:1 + search:@"" freeOnly:NO success:successBlock failure:nil]); @@ -268,9 +269,10 @@ - (void)testThatGetThemesForBlogIdWorks }]; XCTAssertNoThrow([service getThemesForBlogId:blogId - page:1 - success:successBlock - failure:nil]); + search:@"" + page:1 + success:successBlock + failure:nil]); } - (void)testThatGetThemesForBlogIdThrowsExceptionWithoutBlogId From 9959944e7b4322ab824d3b42a74bd27495c8e5a6 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 19:13:57 +0100 Subject: [PATCH 06/19] update: Change WordPressKit binary target URL and checksum --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 965f2427..1fc5c8b3 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19034191/WordPressKit.zip", - checksum: "34f108cba86b5e4334d1c9af79946dbb8b665e270bdd14bc8f7bc0ba7a898583" + url: "https://github.com/user-attachments/files/19325003/WordPressKit.zip", + checksum: "7bab7fb007c1c2bb8b83d0495c32849594451e2d961d289dcee39b84d9c90ebc" ), ] ) From 1e79b7a02e5ecb8ee3c05cb3f7bb4109e04c2ee2 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 23:46:16 +0100 Subject: [PATCH 07/19] Remove unused filter parameter from ThemeServiceRemote - Delete `ThemeRequestFilterKey` constant in ThemeServiceRemote.m - Remove `search` parameter assertion in `getThemesForBlogId` method - Eliminate filter parameter from `getThemesForBlogId` API call --- Sources/WordPressKit/Services/ThemeServiceRemote.m | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index 288b78ee..a60aac67 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -14,7 +14,6 @@ static NSInteger const ThemeRequestNumberValue = 50; static NSString* const ThemeRequestPageKey = @"page"; static NSString* const ThemeRequestSearchKey = @"search"; -static NSString* const ThemeRequestFilterKey = @"filter"; @implementation ThemeServiceRemote @@ -148,20 +147,17 @@ - (NSProgress *)getThemesPage:(NSInteger)page } - (NSProgress *)getThemesForBlogId:(NSNumber *)blogId - search:(NSString *)search page:(NSInteger)page success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure { NSParameterAssert([blogId isKindOfClass:[NSNumber class]]); - NSParameterAssert([search isKindOfClass:[NSString class]]); NSParameterAssert(page > 0); NSProgress *progress = [self getThemesForBlogId:blogId page:page apiVersion:WordPressComRESTAPIVersion_1_2 - params:@{ThemeRequestTierKey: ThemeRequestTierAllValue, - ThemeRequestFilterKey: [NSString stringWithFormat:@"subject:%@", search]} + params:@{ThemeRequestTierKey: ThemeRequestTierAllValue} success:success failure:failure]; From 866940850787f0a7e1eeba406adf6417bdc59165 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 23:48:37 +0100 Subject: [PATCH 08/19] update `Package.swift` --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 1fc5c8b3..04671529 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19325003/WordPressKit.zip", - checksum: "7bab7fb007c1c2bb8b83d0495c32849594451e2d961d289dcee39b84d9c90ebc" + url: "https://github.com/user-attachments/files/19329510/WordPressKit.zip", + checksum: "79d86c26fb143779b25634a042f740343a046ebf615d7b7117b4756c98a1f91f" ), ] ) From b686b1575522e6ca01974351223520a0ebadaf94 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 23:56:29 +0100 Subject: [PATCH 09/19] Change WordPressComRESTAPIVersion from 1_2 to 2_0 in ThemeServiceRemote, `getWPThemesPage` with search method --- Sources/WordPressKit/Services/ThemeServiceRemote.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index a60aac67..bc54deaf 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -108,7 +108,7 @@ - (NSProgress *)getWPThemesPage:(NSInteger)page NSParameterAssert([search isKindOfClass:[NSString class]]); NSString *requestUrl = [self pathForEndpoint:@"themes" - withVersion:WordPressComRESTAPIVersion_1_2]; + withVersion:WordPressComRESTAPIVersion_2_0]; NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, ThemeRequestNumberKey: @(ThemeRequestNumberValue), From 5ec2833b6908713422f53298dbc5aa39a2bce06f Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Tue, 18 Mar 2025 23:59:01 +0100 Subject: [PATCH 10/19] update package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 04671529..05909874 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19329510/WordPressKit.zip", - checksum: "79d86c26fb143779b25634a042f740343a046ebf615d7b7117b4756c98a1f91f" + url: "https://github.com/user-attachments/files/19329609/WordPressKit.zip", + checksum: "0b29beaa2001b00f38b8d3ecae411ea100bd9867e17c86d0128fa995a7597b55" ), ] ) From f5fbaf50e028fd94986128c1861a63a476158777 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 10:50:56 +0100 Subject: [PATCH 11/19] update: Package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 05909874..75b680c3 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19329609/WordPressKit.zip", - checksum: "0b29beaa2001b00f38b8d3ecae411ea100bd9867e17c86d0128fa995a7597b55" + url: "https://github.com/user-attachments/files/19337867/WordPressKit.zip", + checksum: "03c45998c7dbb58c2a5a6799c066037b33762b93545d9de764397b7e8ad4173d" ), ] ) From 99f6f70c463a668aa1ee3485355efa9e7be64549 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 10:55:11 +0100 Subject: [PATCH 12/19] update: ThemeServiceRemoteTests --- Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m | 1 - 1 file changed, 1 deletion(-) diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index 2d10a97d..f7496fa2 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -269,7 +269,6 @@ - (void)testThatGetThemesForBlogIdWorks }]; XCTAssertNoThrow([service getThemesForBlogId:blogId - search:@"" page:1 success:successBlock failure:nil]); From cd033db8938f0f9ce7e3b1922c3d0cc3c111bc77 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 10:57:47 +0100 Subject: [PATCH 13/19] update: Package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 75b680c3..c39efeb7 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19337867/WordPressKit.zip", - checksum: "03c45998c7dbb58c2a5a6799c066037b33762b93545d9de764397b7e8ad4173d" + url: "https://github.com/user-attachments/files/19338050/WordPressKit.zip", + checksum: "b54214abf4a67e3349ce191463cffe908ec3b5dc2c0989fe5a616c660e1edaa8" ), ] ) From fcb991686c53cda9a5aca840f3acedfafdf83eab Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 11:06:12 +0100 Subject: [PATCH 14/19] update: ThemeServiceRemote header file --- Sources/WordPressKit/Services/ThemeServiceRemote.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.h b/Sources/WordPressKit/Services/ThemeServiceRemote.h index f0206b90..939cdb4d 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.h +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.h @@ -81,7 +81,6 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * this method and not getThemes. * * @param blogId The ID of the blog to get the themes for. Cannot be nil. - * @param search Search term for filtering themes. Cannot be nil. * @param page Results page to return. * @param success The success handler. Can be nil. * @param failure The failure handler. Can be nil. @@ -89,7 +88,6 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error); * @returns A progress object that can be used to track progress and/or cancel the task */ - (NSProgress *)getThemesForBlogId:(NSNumber *)blogId - search:(NSString *)search page:(NSInteger)page success:(ThemeServiceRemoteThemesRequestSuccessBlock)success failure:(ThemeServiceRemoteFailureBlock)failure; From 407437b62f9f14dd14ebfed5b8ccb1721a8a3f40 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 11:07:42 +0100 Subject: [PATCH 15/19] update: package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index c39efeb7..5960fd63 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19338050/WordPressKit.zip", - checksum: "b54214abf4a67e3349ce191463cffe908ec3b5dc2c0989fe5a616c660e1edaa8" + url: "https://github.com/user-attachments/files/19338252/WordPressKit.zip", + checksum: "e91be125b5d4e3ba98a0c06b32c71f428cbf3ab1aaa8da08598177ebd24d9a1a" ), ] ) From 2d2d19abb3a12ce443c8b424b0473a10ef1adbd3 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 11:16:54 +0100 Subject: [PATCH 16/19] fix: endpoint version in method `testThatGetThemesWorks` --- Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index f7496fa2..faf8858b 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -196,7 +196,7 @@ - (void)testThatGetThemesWorks XCTAssertNoThrow(service = [[ThemeServiceRemote alloc] initWithWordPressComRestApi:api]); NSString *url = [service pathForEndpoint:@"themes" - withVersion:WordPressComRESTAPIVersion_1_2]; + withVersion:WordPressComRESTAPIVersion_2_0]; ThemeServiceRemoteThemesRequestSuccessBlock successBlock = ^void (NSArray *themes, BOOL hasMore, NSInteger totalThemeCount) { NSCAssert([themes count] == expectedThemes, @"Expected %ld themes to be returned", expectedThemes); From 221e6c622b615cc16dfee412991ef977d56cfd4b Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 11:19:00 +0100 Subject: [PATCH 17/19] update: Package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 5960fd63..82e37368 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19338252/WordPressKit.zip", - checksum: "e91be125b5d4e3ba98a0c06b32c71f428cbf3ab1aaa8da08598177ebd24d9a1a" + url: "https://github.com/user-attachments/files/19338447/WordPressKit.zip", + checksum: "309f0960e8881e174bec2f9c0f2d833c6c5926e952394bfa87eb532d92709eac" ), ] ) From 3caf721664794d5f32d8941ac1a49159611c5a26 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 12:42:26 +0100 Subject: [PATCH 18/19] fix: handle optional search parameter in getWPThemesPage method --- .../Services/ThemeServiceRemote.m | 21 +++++++++++-------- .../Tests/ThemeServiceRemoteTests.m | 8 +++---- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/Sources/WordPressKit/Services/ThemeServiceRemote.m b/Sources/WordPressKit/Services/ThemeServiceRemote.m index bc54deaf..496c5a77 100644 --- a/Sources/WordPressKit/Services/ThemeServiceRemote.m +++ b/Sources/WordPressKit/Services/ThemeServiceRemote.m @@ -105,17 +105,20 @@ - (NSProgress *)getWPThemesPage:(NSInteger)page failure:(ThemeServiceRemoteFailureBlock)failure { NSParameterAssert(page > 0); - NSParameterAssert([search isKindOfClass:[NSString class]]); - + NSString *requestUrl = [self pathForEndpoint:@"themes" withVersion:WordPressComRESTAPIVersion_2_0]; - - NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, - ThemeRequestNumberKey: @(ThemeRequestNumberValue), - ThemeRequestPageKey: @(page), - ThemeRequestSearchKey: search - }; - + + NSMutableDictionary *parameters = [@{ + ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue, + ThemeRequestNumberKey: @(ThemeRequestNumberValue), + ThemeRequestPageKey: @(page) + } mutableCopy]; + + if (search) { + parameters[ThemeRequestSearchKey] = search; + } + return [self getThemesWithRequestUrl:requestUrl page:page parameters:parameters diff --git a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m index faf8858b..a2eda517 100644 --- a/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m +++ b/Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m @@ -224,10 +224,10 @@ - (void)testThatGetThemesWorks }]; XCTAssertNoThrow([service getWPThemesPage:1 - search:@"" - freeOnly:NO - success:successBlock - failure:nil]); + search:nil + freeOnly:NO + success:successBlock + failure:nil]); } - (void)testThatGetThemesForBlogIdWorks From 4fbd973b499f1312103311ff5c883fba19c44dc6 Mon Sep 17 00:00:00 2001 From: Paolo Musolino Date: Wed, 19 Mar 2025 12:45:05 +0100 Subject: [PATCH 19/19] update: Package.swift --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 82e37368..9efe0a20 100644 --- a/Package.swift +++ b/Package.swift @@ -11,8 +11,8 @@ let package = Package( targets: [ .binaryTarget( name: "WordPressKit", - url: "https://github.com/user-attachments/files/19338447/WordPressKit.zip", - checksum: "309f0960e8881e174bec2f9c0f2d833c6c5926e952394bfa87eb532d92709eac" + url: "https://github.com/user-attachments/files/19339848/WordPressKit.zip", + checksum: "5bf1ff361992dccf44dfe41b0a442ee4c3c13dc0a1ce9b647a8ed1b976b5c3fc" ), ] )