Skip to content

Commit 7dc4ed3

Browse files
authored
Add search param in getWPThemesPage method and migrate endpoint to v2.0 (#834)
2 parents 554d3ef + 4fbd973 commit 7dc4ed3

File tree

4 files changed

+30
-20
lines changed

4 files changed

+30
-20
lines changed

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ let package = Package(
1111
targets: [
1212
.binaryTarget(
1313
name: "WordPressKit",
14-
url: "https://github.com/user-attachments/files/19315257/WordPressKit.zip",
15-
checksum: "1b4ba5cef01a64e98ffdc02a5c8ac92f550f234222bfb6abf11b4b4df94435bc"
14+
url: "https://github.com/user-attachments/files/19339848/WordPressKit.zip",
15+
checksum: "5bf1ff361992dccf44dfe41b0a442ee4c3c13dc0a1ce9b647a8ed1b976b5c3fc"
1616
),
1717
]
1818
)

Sources/WordPressKit/Services/ThemeServiceRemote.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error);
5858
* @details Includes premium themes even if not purchased. Don't call this method if the list
5959
* you want to retrieve is for a specific blog. Use getThemesForBlogId instead.
6060
*
61+
* @param search Search term for filtering themes. Cannot be nil.
6162
* @param freeOnly Only fetch free themes, if false all WP themes will be returned
6263
* @param page Results page to return.
6364
* @param success The success handler. Can be nil.
@@ -66,6 +67,7 @@ typedef void(^ThemeServiceRemoteFailureBlock)(NSError *error);
6667
* @returns A progress object that can be used to track progress and/or cancel the task
6768
*/
6869
- (NSProgress *)getWPThemesPage:(NSInteger)page
70+
search:(NSString *)search
6971
freeOnly:(BOOL)freeOnly
7072
success:(ThemeServiceRemoteThemesRequestSuccessBlock)success
7173
failure:(ThemeServiceRemoteFailureBlock)failure;

Sources/WordPressKit/Services/ThemeServiceRemote.m

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
static NSString* const ThemeRequestNumberKey = @"number";
1414
static NSInteger const ThemeRequestNumberValue = 50;
1515
static NSString* const ThemeRequestPageKey = @"page";
16+
static NSString* const ThemeRequestSearchKey = @"search";
1617

1718
@implementation ThemeServiceRemote
1819

@@ -98,20 +99,26 @@ - (NSProgress *)getThemeId:(NSString*)themeId
9899
}
99100

100101
- (NSProgress *)getWPThemesPage:(NSInteger)page
102+
search:(NSString *)search
101103
freeOnly:(BOOL)freeOnly
102104
success:(ThemeServiceRemoteThemesRequestSuccessBlock)success
103105
failure:(ThemeServiceRemoteFailureBlock)failure
104106
{
105107
NSParameterAssert(page > 0);
106-
108+
107109
NSString *requestUrl = [self pathForEndpoint:@"themes"
108-
withVersion:WordPressComRESTAPIVersion_1_2];
109-
110-
NSDictionary *parameters = @{ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue,
111-
ThemeRequestNumberKey: @(ThemeRequestNumberValue),
112-
ThemeRequestPageKey: @(page),
113-
};
114-
110+
withVersion:WordPressComRESTAPIVersion_2_0];
111+
112+
NSMutableDictionary *parameters = [@{
113+
ThemeRequestTierKey: freeOnly ? ThemeRequestTierFreeValue : ThemeRequestTierAllValue,
114+
ThemeRequestNumberKey: @(ThemeRequestNumberValue),
115+
ThemeRequestPageKey: @(page)
116+
} mutableCopy];
117+
118+
if (search) {
119+
parameters[ThemeRequestSearchKey] = search;
120+
}
121+
115122
return [self getThemesWithRequestUrl:requestUrl
116123
page:page
117124
parameters:parameters
@@ -143,9 +150,9 @@ - (NSProgress *)getThemesPage:(NSInteger)page
143150
}
144151

145152
- (NSProgress *)getThemesForBlogId:(NSNumber *)blogId
146-
page:(NSInteger)page
147-
success:(ThemeServiceRemoteThemesRequestSuccessBlock)success
148-
failure:(ThemeServiceRemoteFailureBlock)failure
153+
page:(NSInteger)page
154+
success:(ThemeServiceRemoteThemesRequestSuccessBlock)success
155+
failure:(ThemeServiceRemoteFailureBlock)failure
149156
{
150157
NSParameterAssert([blogId isKindOfClass:[NSNumber class]]);
151158
NSParameterAssert(page > 0);

Tests/WordPressKitTests/Tests/ThemeServiceRemoteTests.m

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ - (void)testThatGetThemesWorks
196196
XCTAssertNoThrow(service = [[ThemeServiceRemote alloc] initWithWordPressComRestApi:api]);
197197

198198
NSString *url = [service pathForEndpoint:@"themes"
199-
withVersion:WordPressComRESTAPIVersion_1_2];
199+
withVersion:WordPressComRESTAPIVersion_2_0];
200200

201201
ThemeServiceRemoteThemesRequestSuccessBlock successBlock = ^void (NSArray<RemoteTheme *> *themes, BOOL hasMore, NSInteger totalThemeCount) {
202202
NSCAssert([themes count] == expectedThemes, @"Expected %ld themes to be returned", expectedThemes);
@@ -224,9 +224,10 @@ - (void)testThatGetThemesWorks
224224
}];
225225

226226
XCTAssertNoThrow([service getWPThemesPage:1
227-
freeOnly:NO
228-
success:successBlock
229-
failure:nil]);
227+
search:nil
228+
freeOnly:NO
229+
success:successBlock
230+
failure:nil]);
230231
}
231232

232233
- (void)testThatGetThemesForBlogIdWorks
@@ -268,9 +269,9 @@ - (void)testThatGetThemesForBlogIdWorks
268269
}];
269270

270271
XCTAssertNoThrow([service getThemesForBlogId:blogId
271-
page:1
272-
success:successBlock
273-
failure:nil]);
272+
page:1
273+
success:successBlock
274+
failure:nil]);
274275
}
275276

276277
- (void)testThatGetThemesForBlogIdThrowsExceptionWithoutBlogId

0 commit comments

Comments
 (0)