forked from shadowfacts/Tusker
parent
3c9692d5b2
commit
0eb000224e
|
@ -77,7 +77,8 @@ class PostService: ObservableObject {
|
|||
pollOptions: draft.poll?.pollOptions.map(\.text),
|
||||
pollExpiresIn: draft.poll == nil ? nil : Int(draft.poll!.duration),
|
||||
pollMultiple: draft.poll?.multiple,
|
||||
localOnly: mastodonController.instanceFeatures.localOnlyPosts ? draft.localOnly : nil
|
||||
localOnly: mastodonController.instanceFeatures.localOnlyPosts ? draft.localOnly : nil,
|
||||
idempotencyKey: draft.id.uuidString
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -113,6 +113,9 @@ public class Client {
|
|||
var urlRequest = URLRequest(url: url, timeoutInterval: timeoutInterval)
|
||||
urlRequest.httpMethod = request.method.name
|
||||
urlRequest.httpBody = request.body.data
|
||||
for (name, value) in request.headers {
|
||||
urlRequest.setValue(value, forHTTPHeaderField: name)
|
||||
}
|
||||
if let mimeType = request.body.mimeType {
|
||||
urlRequest.setValue(mimeType, forHTTPHeaderField: "Content-Type")
|
||||
}
|
||||
|
@ -397,19 +400,22 @@ public class Client {
|
|||
pollOptions: [String]? = nil,
|
||||
pollExpiresIn: Int? = nil,
|
||||
pollMultiple: Bool? = nil,
|
||||
localOnly: Bool? = nil /* hometown only, not glitch */) -> Request<Status> {
|
||||
return Request<Status>(method: .post, path: "/api/v1/statuses", body: ParametersBody([
|
||||
"status" => text,
|
||||
"content_type" => contentType.mimeType,
|
||||
"in_reply_to_id" => inReplyTo,
|
||||
"sensitive" => sensitive,
|
||||
"spoiler_text" => spoilerText,
|
||||
"visibility" => visibility?.rawValue,
|
||||
"language" => language,
|
||||
"poll[expires_in]" => pollExpiresIn,
|
||||
"poll[multiple]" => pollMultiple,
|
||||
"local_only" => localOnly,
|
||||
] + "media_ids" => mediaIDs + "poll[options]" => pollOptions))
|
||||
localOnly: Bool? = nil, /* hometown only, not glitch */
|
||||
idempotencyKey: String) -> Request<Status> {
|
||||
var req = Request<Status>(method: .post, path: "/api/v1/statuses", body: ParametersBody([
|
||||
"status" => text,
|
||||
"content_type" => contentType.mimeType,
|
||||
"in_reply_to_id" => inReplyTo,
|
||||
"sensitive" => sensitive,
|
||||
"spoiler_text" => spoilerText,
|
||||
"visibility" => visibility?.rawValue,
|
||||
"language" => language,
|
||||
"poll[expires_in]" => pollExpiresIn,
|
||||
"poll[multiple]" => pollMultiple,
|
||||
"local_only" => localOnly,
|
||||
] + "media_ids" => mediaIDs + "poll[options]" => pollOptions))
|
||||
req.headers["Idempotency-Key"] = idempotencyKey
|
||||
return req
|
||||
}
|
||||
|
||||
public static func editStatus(
|
||||
|
|
|
@ -13,6 +13,7 @@ public struct Request<ResultType: Decodable>: Sendable {
|
|||
let endpoint: Endpoint
|
||||
let body: Body
|
||||
var queryParameters: [Parameter]
|
||||
var headers: [String: String] = [:]
|
||||
var additionalAcceptableHTTPCodes: [Int] = []
|
||||
|
||||
init(method: Method, path: Endpoint, body: Body = EmptyBody(), queryParameters: [Parameter] = []) {
|
||||
|
|
Loading…
Reference in New Issue