Skip to content

Commit b6d4b2e

Browse files
authored
Remove usages of GetData (#747)
2 parents 61d077c + 745c359 commit b6d4b2e

File tree

2 files changed

+16
-39
lines changed

2 files changed

+16
-39
lines changed

WordPressKit/AnnouncementServiceRemote.swift

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,11 @@ public class AnnouncementServiceRemote: ServiceRemoteWordPressComREST {
1414
}
1515

1616
let path = self.path(forEndpoint: endPoint, withVersion: ._2_0)
17-
18-
wordPressComRestApi.GETData(path, parameters: nil) { result in
19-
switch result {
20-
case .success((let data, _)):
21-
do {
22-
let announcements = try self.decodeAnnouncements(from: data)
23-
completion(.success(announcements))
24-
} catch {
25-
completion(.failure(error))
26-
}
27-
case .failure(let error):
28-
completion(.failure(error))
29-
}
17+
Task { @MainActor [wordPressComRestApi] in
18+
await wordPressComRestApi.perform(.get, URLString: path, type: AnnouncementsContainer.self)
19+
.map { $0.body.announcements }
20+
.eraseToError()
21+
.execute(completion)
3022
}
3123
}
3224
}
@@ -45,11 +37,6 @@ private extension AnnouncementServiceRemote {
4537
path?.queryItems = makeQueryItems(appId: appId, appVersion: appVersion, locale: locale)
4638
return path?.string
4739
}
48-
49-
func decodeAnnouncements(from data: Data) throws -> [Announcement] {
50-
let container = try JSONDecoder().decode(AnnouncementsContainer.self, from: data)
51-
return container.announcements
52-
}
5340
}
5441

5542
// MARK: - Constants

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)