Skip to content

Commit fa08f72

Browse files
committed
Use wordPressComRestApi.perform
1 parent dda1164 commit fa08f72

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

Modules/Sources/WordPressKit/ReaderPostServiceRemote+V2.swift

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
import Foundation
22

3-
public struct ResolvedReaderPost {
3+
public struct ResolvedReaderPost: Decodable {
44
public let postId: UInt64
55
public let siteId: UInt64
6+
7+
enum CodingKeys: String, CodingKey {
8+
case postId = "post_id"
9+
case siteId = "site_id"
10+
}
611
}
712

813
extension ReaderPostServiceRemote {
@@ -41,23 +46,15 @@ extension ReaderPostServiceRemote {
4146
success: @escaping (ResolvedReaderPost) -> Void,
4247
failure: @escaping (Error) -> Void
4348
) {
44-
45-
wordPressComRESTAPI.get("/wpcom/v2/mobile/resolve-reader-url", parameters: [
46-
"url": url.absoluteString
47-
]) { data, response in
48-
guard
49-
// If the numbers aren't positive integers the response is invalid
50-
let responseDict = data as? [String: UInt64],
51-
let siteId = responseDict["site_id"],
52-
let postId = responseDict["post_id"]
53-
else {
54-
failure(CocoaError(.coderInvalidValue))
55-
return
56-
}
57-
58-
success(ResolvedReaderPost(postId: postId, siteId: siteId))
59-
} failure: { error, response in
60-
failure(error)
49+
let path = "/wpcom/v2/mobile/resolve-reader-url"
50+
51+
Task { @MainActor [wordPressComRestApi] in
52+
await wordPressComRestApi.perform(.get, URLString: path, parameters: [
53+
"url": url.absoluteString,
54+
], type: ResolvedReaderPost.self)
55+
.map { $0.body }
56+
.eraseToError()
57+
.execute(onSuccess: success, onFailure: failure)
6158
}
6259
}
6360

0 commit comments

Comments
 (0)