session-ios/SessionMessagingKit/Storage.swift

74 lines
3.3 KiB
Swift
Raw Normal View History

2020-11-06 01:41:01 +01:00
import SessionProtocolKit
2020-11-10 05:48:47 +01:00
public protocol SessionMessagingKitStorageProtocol {
2020-11-06 01:41:01 +01:00
// MARK: - Shared
2020-11-12 22:41:54 +01:00
func with(_ work: @escaping (Any) -> Void)
func withAsync(_ work: @escaping (Any) -> Void, completion: @escaping () -> Void)
2020-11-06 01:41:01 +01:00
// MARK: - General
func getUserPublicKey() -> String?
func getUserKeyPair() -> ECKeyPair?
func getUserDisplayName() -> String?
// MARK: - Signal Protocol
2020-11-06 01:41:01 +01:00
func getOrGenerateRegistrationID(using transaction: Any) -> UInt32
func getSenderCertificate(for publicKey: String) -> SMKSenderCertificate
// MARK: - Shared Sender Keys
func getClosedGroupPrivateKey(for publicKey: String) -> String?
func isClosedGroup(_ publicKey: String) -> Bool
// MARK: - Jobs
2020-11-08 03:12:38 +01:00
func persist(_ job: Job, using transaction: Any)
2020-11-08 03:54:40 +01:00
func markJobAsSucceeded(_ job: Job, using transaction: Any)
func markJobAsFailed(_ job: Job, using transaction: Any)
func getAllPendingJobs(of type: Job.Type) -> [Job]
2020-11-23 05:08:01 +01:00
func getAttachmentUploadJob(for attachmentID: String) -> AttachmentUploadJob?
// 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 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
2020-11-12 22:41:54 +01:00
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
2020-11-12 22:41:54 +01:00
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, on channel: UInt64, server: String, using transaction: Any)
func setLastProfilePictureUploadDate(_ date: Date) // Stored in user defaults so no transaction is needed
// MARK: - Message Handling
2020-11-23 00:24:40 +01:00
/// Returns the ID of the thread the message was stored under along with the ID of the `TSIncomingMessage` that was constructed.
func persist(_ message: VisibleMessage, groupPublicKey: String?, using transaction: Any) -> (String, String)?
2020-11-20 01:10:53 +01:00
/// Returns the IDs of the saved attachments.
2020-11-23 00:24:40 +01:00
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)
2020-11-06 01:41:01 +01:00
}