session-ios/Configuration.swift

47 lines
1.9 KiB
Swift
Raw Normal View History

import Foundation
import SessionUtilitiesKit
2020-11-06 01:41:01 +01:00
2020-12-02 06:25:16 +01:00
@objc
public final class SNMessagingKitConfiguration : NSObject {
2020-11-06 01:41:01 +01:00
public let storage: SessionMessagingKitStorageProtocol
2020-12-02 06:25:16 +01:00
@objc public static var shared: SNMessagingKitConfiguration!
2020-12-01 07:40:18 +01:00
2021-01-04 01:18:04 +01:00
fileprivate init(storage: SessionMessagingKitStorageProtocol) {
2020-12-01 07:40:18 +01:00
self.storage = storage
}
2020-11-06 01:41:01 +01:00
}
2020-11-12 22:41:54 +01:00
public enum SNMessagingKit { // Just to make the external API nice
public static func migrations() -> TargetMigrations {
return TargetMigrations(
identifier: .messagingKit,
migrations: [
[
_001_InitialSetupMigration.self,
_002_SetupStandardJobs.self
],
[
_003_YDBToGRDBMigration.self
]
]
)
}
2021-01-04 01:18:04 +01:00
public static func configure(storage: SessionMessagingKitStorageProtocol) {
// Configure the job executors
JobRunner.add(executor: DisappearingMessagesJob.self, for: .disappearingMessages)
JobRunner.add(executor: FailedMessagesJob.self, for: .failedMessages)
JobRunner.add(executor: FailedAttachmentDownloadsJob.self, for: .failedAttachmentDownloads)
JobRunner.add(executor: UpdateProfilePictureJob.self, for: .updateProfilePicture)
JobRunner.add(executor: RetrieveDefaultOpenGroupRoomsJob.self, for: .retrieveDefaultOpenGroupRooms)
JobRunner.add(executor: MessageSendJob.self, for: .messageSend)
JobRunner.add(executor: MessageReceiveJob.self, for: .messageReceive)
JobRunner.add(executor: NotifyPushServerJob.self, for: .notifyPushServer)
JobRunner.add(executor: SendReadReceiptsJob.self, for: .sendReadReceipts)
JobRunner.add(executor: AttachmentDownloadJob.self, for: .attachmentDownload)
2021-01-04 01:18:04 +01:00
SNMessagingKitConfiguration.shared = SNMessagingKitConfiguration(storage: storage)
2020-11-06 01:41:01 +01:00
}
}