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

Commit 745c359

Browse files
committed
Do not use GetData in PlanServiceRemote
1 parent 84d00d3 commit 745c359

File tree

1 file changed

+11
-21
lines changed

1 file changed

+11
-21
lines changed

WordPressKit/Plans/PlanServiceRemote.swift

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -195,28 +195,18 @@ public class PlanServiceRemote: ServiceRemoteWordPressComREST {
195195
public func getZendeskMetadata(siteID: Int, completion: @escaping (Result<ZendeskMetadata, Error>) -> Void) {
196196
let endpoint = "me/sites"
197197
let path = self.path(forEndpoint: endpoint, withVersion: ._1_1)
198-
let parameters: [String: String] = ["fields": "ID, zendesk_site_meta"]
199-
200-
wordPressComRestApi.GETData(path, parameters: parameters as [String: AnyObject]) { result in
201-
switch result {
202-
case .success((let data, _)):
203-
do {
204-
let metadata = try self.decodeZendeskMetadata(from: data, siteID: siteID)
205-
completion(.success(metadata))
206-
} catch {
207-
completion(.failure(error))
198+
let parameters = ["fields": "ID, zendesk_site_meta"] as [String: AnyObject]
199+
200+
Task { @MainActor [wordPressComRestApi] in
201+
await wordPressComRestApi.perform(.get, URLString: path, parameters: parameters, type: ZendeskSiteContainer.self)
202+
.eraseToError()
203+
.flatMap { container in
204+
guard let metadata = container.body.sites.filter({ $0.ID == siteID }).first?.zendeskMetadata else {
205+
return .failure(PlanServiceRemoteError.noMetadata)
206+
}
207+
return .success(metadata)
208208
}
209-
case .failure(let error):
210-
completion(.failure(error))
211-
}
212-
}
213-
}
214-
215-
private func decodeZendeskMetadata(from data: Data, siteID: Int) throws -> ZendeskMetadata {
216-
let container = try JSONDecoder().decode(ZendeskSiteContainer.self, from: data)
217-
guard let metadata = container.sites.filter({ $0.ID == siteID }).first?.zendeskMetadata else {
218-
throw PlanServiceRemoteError.noMetadata
209+
.execute(completion)
219210
}
220-
return metadata
221211
}
222212
}

0 commit comments

Comments
 (0)