@@ -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