Requests WIP: getRant
This commit is contained in:
parent
b6fd0219fb
commit
793db8bac9
@ -133,4 +133,28 @@ public struct SwiftDevRant {
|
|||||||
|
|
||||||
return response.data.decoded
|
return response.data.decoded
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Gets a single rant and its comments.
|
||||||
|
///
|
||||||
|
/// - Parameters:
|
||||||
|
/// - token: The token from the `logIn` call response.
|
||||||
|
/// - rantId: The id of the rant.
|
||||||
|
/// - lastCommentId: Only fetch the comments which were posted after the one corresponding to this id. Pass `nil` to get all comments.
|
||||||
|
public func getRant(token: AuthToken, rantId: Int, lastCommentId: Int? = nil) async throws -> (rant: Rant, comments: [Comment]) {
|
||||||
|
var parameters: [String: String] = [:]
|
||||||
|
|
||||||
|
parameters["last_comment_id"] = lastCommentId.flatMap { String($0) }
|
||||||
|
//parameters["ver"] = "1.17.0.4" //TODO: check if this is needed
|
||||||
|
|
||||||
|
let config = makeConfig(.get, path: "devrant/rants/\(rantId)", urlParameters: parameters)
|
||||||
|
|
||||||
|
struct Response: Codable {
|
||||||
|
let rant: Rant.CodingData
|
||||||
|
let comments: [Comment.CodingData]?
|
||||||
|
}
|
||||||
|
|
||||||
|
let response: Response = try await request.requestJson(config: config, apiError: DevRantApiError.CodingData.self)
|
||||||
|
|
||||||
|
return (rant: response.rant.decoded, comments: response.comments?.map(\.decoded) ?? [])
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user