mirror of https://github.com/oxen-io/session-ios
mirror of https://github.com/oxen-io/session-ios
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
4.2 KiB
92 lines
4.2 KiB
import SessionProtocolKit |
|
import PromiseKit |
|
import Sodium |
|
|
|
public protocol SessionMessagingKitStorageProtocol { |
|
|
|
// MARK: - Shared |
|
|
|
@discardableResult |
|
func write(with block: @escaping (Any) -> Void) -> Promise<Void> |
|
@discardableResult |
|
func write(with block: @escaping (Any) -> Void, completion: @escaping () -> Void) -> Promise<Void> |
|
func writeSync(with block: @escaping (Any) -> Void) |
|
|
|
// MARK: - General |
|
|
|
func getUserPublicKey() -> String? |
|
func getUserKeyPair() -> ECKeyPair? |
|
func getUserED25519KeyPair() -> Box.KeyPair? |
|
func getUserDisplayName() -> String? |
|
func getUserProfileKey() -> Data? |
|
func getUserProfilePictureURL() -> String? |
|
|
|
// MARK: - Signal Protocol |
|
|
|
func getOrGenerateRegistrationID(using transaction: Any) -> UInt32 |
|
|
|
// MARK: - Shared Sender Keys |
|
|
|
func getClosedGroupPrivateKey(for publicKey: String) -> String? |
|
func isClosedGroup(_ publicKey: String) -> Bool |
|
|
|
// MARK: - Jobs |
|
|
|
func persist(_ job: Job, using transaction: Any) |
|
func markJobAsSucceeded(_ job: Job, using transaction: Any) |
|
func markJobAsFailed(_ job: Job, using transaction: Any) |
|
func getAllPendingJobs(of type: Job.Type) -> [Job] |
|
func getAttachmentUploadJob(for attachmentID: String) -> AttachmentUploadJob? |
|
func getMessageSendJob(for messageSendJobID: String) -> MessageSendJob? |
|
func resumeMessageSendJobIfNeeded(_ messageSendJobID: String) |
|
func isJobCanceled(_ job: Job) -> Bool |
|
|
|
// MARK: - Authorization |
|
|
|
func getAuthToken(for server: String) -> String? |
|
func setAuthToken(for server: String, to newValue: String, using transaction: Any) |
|
func removeAuthToken(for server: String, using transaction: Any) |
|
|
|
// MARK: - Open Groups |
|
|
|
func getOpenGroup(for threadID: String) -> OpenGroup? |
|
func getThreadID(for openGroupID: String) -> String? |
|
|
|
// MARK: - Open Group Public Keys |
|
|
|
func getOpenGroupPublicKey(for server: String) -> String? |
|
func setOpenGroupPublicKey(for server: String, to newValue: String, using transaction: Any) |
|
|
|
// MARK: - Last Message Server ID |
|
func getLastMessageServerID(for group: UInt64, on server: String) -> UInt64? |
|
func setLastMessageServerID(for group: UInt64, on server: String, to newValue: UInt64, using transaction: Any) |
|
func removeLastMessageServerID(for group: UInt64, on server: String, using transaction: Any) |
|
|
|
// MARK: - Last Deletion Server ID |
|
|
|
func getLastDeletionServerID(for group: UInt64, on server: String) -> UInt64? |
|
func setLastDeletionServerID(for group: UInt64, on server: String, to newValue: UInt64, using transaction: Any) |
|
func removeLastDeletionServerID(for group: UInt64, on server: String, using transaction: Any) |
|
|
|
// MARK: - Open Group Metadata |
|
|
|
func setUserCount(to newValue: Int, forOpenGroupWithID openGroupID: String, using transaction: Any) |
|
func getIDForMessage(withServerID serverID: UInt64) -> UInt64? |
|
func setOpenGroupDisplayName(to displayName: String, for publicKey: String, inOpenGroupWithID openGroupID: String, using transaction: Any) |
|
func setLastProfilePictureUploadDate(_ date: Date) // Stored in user defaults so no transaction is needed |
|
|
|
// MARK: - Message Handling |
|
|
|
func getReceivedMessageTimestamps(using transaction: Any) -> [UInt64] |
|
func addReceivedMessageTimestamp(_ timestamp: UInt64, using transaction: Any) |
|
/// Returns the ID of the thread. |
|
func getOrCreateThread(for publicKey: String, groupPublicKey: String?, openGroupID: String?, using transaction: Any) -> String? |
|
/// Returns the ID of the `TSIncomingMessage` that was constructed. |
|
func persist(_ message: VisibleMessage, quotedMessage: TSQuotedMessage?, linkPreview: OWSLinkPreview?, groupPublicKey: String?, openGroupID: String?, using transaction: Any) -> String? |
|
/// Returns the IDs of the saved attachments. |
|
func persist(_ attachments: [VisibleMessage.Attachment], using transaction: Any) -> [String] |
|
/// Also touches the associated message. |
|
func setAttachmentState(to state: TSAttachmentPointerState, for pointer: TSAttachmentPointer, associatedWith tsIncomingMessageID: String, using transaction: Any) |
|
/// Also touches the associated message. |
|
func persist(_ stream: TSAttachmentStream, associatedWith tsIncomingMessageID: String, using transaction: Any) |
|
}
|
|
|