From 9ed785db0e6b6c800f07bf42655e18ee91fd96d2 Mon Sep 17 00:00:00 2001 From: Thomas Ricouard Date: Mon, 17 Jul 2023 19:35:16 +0200 Subject: [PATCH] Properly JSON encode image ALT fix #1492 --- .../Sources/Network/Endpoint/Media.swift | 23 ++++++++++++++----- .../Status/Editor/StatusEditorViewModel.swift | 4 ++-- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Packages/Network/Sources/Network/Endpoint/Media.swift b/Packages/Network/Sources/Network/Endpoint/Media.swift index 56204e6c..b100c0b6 100644 --- a/Packages/Network/Sources/Network/Endpoint/Media.swift +++ b/Packages/Network/Sources/Network/Endpoint/Media.swift @@ -2,7 +2,7 @@ import Foundation public enum Media: Endpoint { case medias - case media(id: String, description: String?) + case media(id: String, json: MediaDescriptionData) public func path() -> String { switch self { @@ -14,14 +14,25 @@ public enum Media: Endpoint { } public func queryItems() -> [URLQueryItem]? { + return nil + } + + public var jsonValue: Encodable? { switch self { - case let .media(_, description): - if let description { - return [.init(name: "description", value: description)] - } - return nil + case let .media(_, json): + return json default: return nil } } + } + +public struct MediaDescriptionData: Encodable, Sendable { + public let description: String? + + public init(description: String?) { + self.description = description + } +} + diff --git a/Packages/Status/Sources/Status/Editor/StatusEditorViewModel.swift b/Packages/Status/Sources/Status/Editor/StatusEditorViewModel.swift index d479edb5..6f3a3310 100644 --- a/Packages/Status/Sources/Status/Editor/StatusEditorViewModel.swift +++ b/Packages/Status/Sources/Status/Editor/StatusEditorViewModel.swift @@ -674,7 +674,7 @@ public class StatusEditorViewModel: NSObject, ObservableObject { } do { let newAttachement: MediaAttachment = try await client.get(endpoint: Media.media(id: mediaAttachement.id, - description: nil)) + json: .init(description: nil))) if newAttachement.url != nil { let oldContainer = mediasImages[index] mediasImages[index] = .init(image: oldContainer.image, @@ -695,7 +695,7 @@ public class StatusEditorViewModel: NSObject, ObservableObject { if let index = indexOf(container: container) { do { let media: MediaAttachment = try await client.put(endpoint: Media.media(id: attachment.id, - description: description)) + json: .init(description: description))) mediasImages[index] = .init(image: nil, movieTransferable: nil, gifTransferable: nil,