Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit 40342e8

Browse files
committed
Simplify how filters are passed
1 parent bb34b0f commit 40342e8

File tree

2 files changed

+15
-22
lines changed

2 files changed

+15
-22
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/20039232/WordPressKit.zip",
15-
checksum: "6d0d9f96dbe6d810306e5b00635d65c61ae2a0409da519c462bf18f28801db55"
14+
url: "https://github.com/user-attachments/files/20062492/WordPressKit.zip",
15+
checksum: "dd2bcc029d1d0bdc1b973f006d4c5cb9f0a6219a1fbfd82392c28be8c0bbe2a3"
1616
),
1717
]
1818
)

Sources/WordPressKit/Services/PeopleServiceRemote.swift

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
176176
public struct SubscribersParameters: Hashable {
177177
public var sortField: SortField?
178178
public var sortOrder: SortOrder?
179-
public var filters: Set<Filter>
180-
public var search: String?
179+
public var subscriptionTypeFilter: FilterSubscriptionType?
180+
public var paymentTypeFilter: FilterPaymentType?
181181

182182
public enum SortField: String {
183183
case dateSubscribed = "date_subscribed"
@@ -192,18 +192,6 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
192192
case descending = "dsc"
193193
}
194194

195-
public enum Filter: Hashable {
196-
case subscription(FilterSubscriptionType)
197-
case payment(FilterPaymentType)
198-
199-
var rawValue: String {
200-
switch self {
201-
case .subscription(let filter): filter.rawValue
202-
case .payment(let filter): filter.rawValue
203-
}
204-
}
205-
}
206-
207195
public enum FilterSubscriptionType: String {
208196
case email = "email_subscriber"
209197
case reader = "reader_subscriber"
@@ -216,11 +204,15 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
216204
case paid
217205
}
218206

219-
public init(sortField: SortField? = nil, sortOrder: SortOrder? = nil, filters: Set<Filter> = [], search: String? = nil) {
207+
var filters: [String] {
208+
[subscriptionTypeFilter?.rawValue, paymentTypeFilter?.rawValue].compactMap { $0 }
209+
}
210+
211+
public init(sortField: SortField? = nil, sortOrder: SortOrder? = nil, subscriptionTypeFilter: FilterSubscriptionType? = nil, paymentTypeFilter: FilterPaymentType? = nil) {
220212
self.sortField = sortField
221213
self.sortOrder = sortOrder
222-
self.filters = filters
223-
self.search = search
214+
self.subscriptionTypeFilter = subscriptionTypeFilter
215+
self.paymentTypeFilter = paymentTypeFilter
224216
}
225217
}
226218

@@ -235,7 +227,8 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
235227
siteID: Int,
236228
page: Int? = nil,
237229
perPage: Int? = 25,
238-
parameters: SubscribersParameters = .init()
230+
parameters: SubscribersParameters = .init(),
231+
search: String? = nil,
239232
) async throws -> SubscribersResponse {
240233
let url = self.path(forEndpoint: "sites/\(siteID)/subscribers", withVersion: ._2_0)
241234
var query: [String: Any] = [:]
@@ -252,9 +245,9 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
252245
query["sort_order"] = sortOrder.rawValue
253246
}
254247
if !parameters.filters.isEmpty {
255-
query["filters"] = parameters.filters.map(\.rawValue)
248+
query["filters"] = parameters.filters
256249
}
257-
if let search = parameters.search, !search.isEmpty {
250+
if let search, !search.isEmpty {
258251
query["search"] = search
259252
}
260253

0 commit comments

Comments
 (0)