From 8774ed4e79a9025f7eb25e854e87d4c83f8fa9ae Mon Sep 17 00:00:00 2001 From: Nathan Mattes Date: Tue, 7 May 2024 18:00:08 +0200 Subject: [PATCH] Add entity for new AccountWarning (IOS-264) Details see https://github.com/mastodon/mastodon/pull/30065 for now, as there's no documentation (yet) --- .../Entity/Mastodon+Entity+Notification.swift | 58 ++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/MastodonSDK/Sources/MastodonSDK/Entity/Mastodon+Entity+Notification.swift b/MastodonSDK/Sources/MastodonSDK/Entity/Mastodon+Entity+Notification.swift index 787fea727..f29a5fff4 100644 --- a/MastodonSDK/Sources/MastodonSDK/Entity/Mastodon+Entity+Notification.swift +++ b/MastodonSDK/Sources/MastodonSDK/Entity/Mastodon+Entity+Notification.swift @@ -23,15 +23,69 @@ extension Mastodon.Entity { public let type: Type public let createdAt: Date public let account: Account - public let status: Status? - + public let accountWarning: AccountWarning? + enum CodingKeys: String, CodingKey { case id case type case createdAt = "created_at" case account case status + case accountWarning = "moderation_warning" + } + } +} + +extension Mastodon.Entity { + public struct AccountWarning: Codable { + public typealias ID = String + + public let id: ID + public let action: Action + public let text: String? + public let targetAccount: Account + public let appeal: Appeal? + public let statusIds: [Mastodon.Entity.Status.ID]? + + public enum CodingKeys: String, CodingKey { + case id + case action + case text + case targetAccount = "target_account" + case appeal + case statusIds = "status_ids" + } + + public enum Action: String, Codable { + case none + case disable + case markStatusesAsSensitive + case deleteStatuses + case sensitive + case silence + case suspend + + public enum CodingKeys: String, CodingKey { + case none + case disable + case markStatusesAsSensitive = "mark_statuses_as_sensitive" + case deleteStatuses = "delete_statuses" + case sensitive + case silence + case suspend + } + } + + public struct Appeal: Codable { + public let text: String + public let state: State + + public enum State: String, Codable { + case approved + case rejected + case pending + } } } }