mirror of https://github.com/oxen-io/session-ios
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.8 KiB
Swift
36 lines
1.8 KiB
Swift
5 years ago
|
|
||
|
internal extension OpenGroupMessage {
|
||
|
|
||
|
static func from(_ message: VisibleMessage, for server: String) -> OpenGroupMessage? {
|
||
|
guard message.isValid else { preconditionFailure() } // Should be valid at this point
|
||
|
let storage = Configuration.shared.storage
|
||
|
let displayName = storage.getUserDisplayName() ?? "Anonymous"
|
||
|
guard let userPublicKey = storage.getUserPublicKey() else { return nil }
|
||
|
let quote: OpenGroupMessage.Quote? = {
|
||
|
if let quote = message.quote {
|
||
|
guard quote.isValid else { return nil }
|
||
|
return OpenGroupMessage.Quote(quotedMessageTimestamp: quote.timestamp!, quoteePublicKey: quote.publicKey!, quotedMessageBody: quote.text!, quotedMessageServerID: nil) // TODO: Server ID
|
||
|
} else {
|
||
|
return nil
|
||
|
}
|
||
|
}()
|
||
|
let body = message.text!
|
||
|
let result = OpenGroupMessage(serverID: nil, senderPublicKey: userPublicKey, displayName: displayName, profilePicture: nil, body: body,
|
||
|
type: OpenGroupAPI.openGroupMessageType, timestamp: message.sentTimestamp!, quote: quote, attachments: [], signature: nil, serverTimestamp: 0)
|
||
|
if let linkPreview: OpenGroupMessage.Attachment = {
|
||
|
if let linkPreview = message.linkPreview {
|
||
|
guard linkPreview.isValid else { return nil }
|
||
|
// TODO: Implement
|
||
|
return OpenGroupMessage.Attachment(kind: .linkPreview, server: server, serverID: 0, contentType: "", size: 0, fileName: "",
|
||
|
flags: 0, width: 0, height: 0, caption: "", url: "", linkPreviewURL: "", linkPreviewTitle: "")
|
||
|
} else {
|
||
|
return nil
|
||
|
}
|
||
|
}() {
|
||
|
result.attachments.append(linkPreview)
|
||
|
}
|
||
|
// TODO: Attachments
|
||
|
return result
|
||
|
}
|
||
|
}
|