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

Commit 83d66fa

Browse files
authored
Extend SubscriberServiceRemote (#837)
2 parents 5bc0876 + cc7fd8a commit 83d66fa

File tree

11 files changed

+461
-128
lines changed

11 files changed

+461
-128
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/19949939/WordPressKit.zip",
15-
checksum: "ba06ff0716595023dd6c98b6a5bc74d4abb35bfb668e24026ffd041460f59137"
14+
url: "https://github.com/user-attachments/files/20175119/WordPressKit.zip",
15+
checksum: "13aa0e5952616a2f01a0f0db370ee7925d58253c2aab6e216671e8a013ab471b"
1616
),
1717
]
1818
)

Sources/WordPressKit/Models/RemoteSubscriber.swift

Lines changed: 0 additions & 23 deletions
This file was deleted.

Sources/WordPressKit/Services/PeopleServiceRemote.swift

Lines changed: 0 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -173,91 +173,6 @@ public class PeopleServiceRemote: ServiceRemoteWordPressComREST {
173173
})
174174
}
175175

176-
public struct SubscribersParameters {
177-
public var sortField: SortField?
178-
public var sortOrder: SortOrder?
179-
public var filters: [Filter]
180-
181-
public enum SortField: String {
182-
case dateSubscribed = "date_subscribed"
183-
case email = "email"
184-
case name = "name"
185-
case plan = "plan"
186-
case subscriptionStatus = "subscription_status"
187-
}
188-
189-
public enum SortOrder: String {
190-
case ascending = "asc"
191-
case descending = "dsc"
192-
}
193-
194-
public protocol Filter: CustomStringConvertible {}
195-
196-
public enum FilterSubscriptionType: String, Filter {
197-
case email = "email_subscriber"
198-
case reader = "reader_subscriber"
199-
case unconfirmed = "unconfirmed_subscriber"
200-
case blocked = "blocked_subscriber"
201-
202-
public var description: String { rawValue }
203-
}
204-
205-
public enum FilterPaymentType: String, Filter {
206-
case free
207-
case paid
208-
209-
public var description: String { rawValue }
210-
}
211-
212-
public init(sortField: SortField? = nil, sortOrder: SortOrder? = nil, filters: [Filter] = []) {
213-
self.sortField = sortField
214-
self.sortOrder = sortOrder
215-
self.filters = filters
216-
}
217-
}
218-
219-
public struct SubscribersResponse: Decodable {
220-
public var total: Int
221-
public var pages: Int
222-
public var page: Int
223-
public var subscribers: [RemoteSubscriber]
224-
}
225-
226-
public func getSubscribers(
227-
siteID: Int,
228-
page: Int? = nil,
229-
perPage: Int? = 25,
230-
parameters: SubscribersParameters = .init()
231-
) async throws -> SubscribersResponse {
232-
let url = self.path(forEndpoint: "sites/\(siteID)/subscribers", withVersion: ._2_0)
233-
var query: [String: Any] = [:]
234-
if let page {
235-
query["page"] = page
236-
}
237-
if let perPage {
238-
query["per_page"] = perPage
239-
}
240-
if let sortField = parameters.sortField {
241-
query["sort"] = sortField.rawValue
242-
}
243-
if let sortOrder = parameters.sortOrder {
244-
query["sort_order"] = sortOrder.rawValue
245-
}
246-
if !parameters.filters.isEmpty {
247-
query["filters"] = parameters.filters.map { $0.description }
248-
}
249-
250-
let decoder = JSONDecoder()
251-
decoder.dateDecodingStrategy = JSONDecoder.DateDecodingStrategy.supportMultipleDateFormats
252-
253-
return try await wordPressComRestApi.perform(
254-
.get,
255-
URLString: url,
256-
jsonDecoder: decoder,
257-
type: SubscribersResponse.self
258-
).get().body
259-
}
260-
261176
/// Updates a specified User's Role
262177
///
263178
/// - Parameters:

0 commit comments

Comments
 (0)