123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- //
- // SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
- // SPDX-License-Identifier: GPL-3.0-or-later
- //
- import Foundation
- @objcMembers public class FederationInvitation: NSObject {
- public enum FederationInvitationState: Int {
- case pending = 0
- case accepted = 1
- }
- public var accountId: String = ""
- public var invitationId: Int = 0
- public var invitationState: FederationInvitationState = .pending
- public var inviterDisplayName: String?
- public var remoteServer: String?
- public var remoteConversationName: String?
- init(notification: NCNotification, for accountId: String) {
- super.init()
- self.accountId = accountId
- self.invitationId = Int(notification.objectId) ?? 0
- guard let richParameters = notification.subjectRichParameters as? [String: AnyObject]
- else { return }
- if let roomNameObj = richParameters["roomName"] as? [String: AnyObject],
- let roomName = roomNameObj["name"] as? String {
- remoteConversationName = roomName
- }
- if let serverObj = richParameters["remoteServer"] as? [String: AnyObject],
- let server = serverObj["name"] as? String {
- remoteServer = server
- }
- }
- init(dictionary: [String: Any], for accountId: String) {
- super.init()
- self.accountId = accountId
- self.invitationId = dictionary["id"] as? Int ?? 0
- self.inviterDisplayName = dictionary["inviterDisplayName"] as? String
- self.remoteServer = dictionary["remoteServerUrl"] as? String
- self.remoteConversationName = dictionary["roomName"] as? String
- if let stateRaw = dictionary["state"] as? Int,
- let state = FederationInvitationState(rawValue: stateRaw) {
- self.invitationState = state
- }
- }
- }
|