import Models import XXModels import Bindings extension Contact { init(with contact: BindingsContact, status: Contact.AuthStatus) { self.init( id: contact.getID()!, marshaled: try! contact.marshal(), username: contact.retrieve(fact: .username) ?? "", email: contact.retrieve(fact: .email), phone: contact.retrieve(fact: .phone), nickname: nil, photo: nil, authStatus: status, isRecent: false, createdAt: Date() ) } } extension Message { init(with message: BindingsMessage, myId: Data) { guard let payload = try? Payload(with: message.getPayload()!) else { fatalError() } self.init( networkId: message.getID()!, senderId: message.getSender()!, recipientId: myId, groupId: nil, date: Date.fromTimestamp(Int(message.getTimestampNano())), status: .received, isUnread: true, text: payload.text, replyMessageId: payload.reply?.messageId, roundURL: message.getRoundURL(), fileTransferId: nil ) } init(with message: BindingsGroupMessageReceive) { guard let payload = try? Payload(with: message.getPayload()!) else { fatalError() } self.init( networkId: message.getMessageID()!, senderId: message.getSenderID()!, recipientId: nil, groupId: message.getGroupID()!, date: Date.fromTimestamp(Int(message.getTimestampNano())), status: .received, isUnread: true, text: payload.text, replyMessageId: payload.reply?.messageId, roundURL: message.getRoundURL(), fileTransferId: nil ) } }