ScheduleNewAssetMessageUseCaseImpl

internal class ScheduleNewAssetMessageUseCaseImpl(persistNewAssetMessage: PersistNewAssetMessageUseCase, uploadAsset: UploadAssetUseCase, updateAssetMessageTransferStatus: UpdateAssetMessageTransferStatusUseCase, userId: UserId, slowSyncRepository: SlowSyncRepository, messageRepository: MessageRepository, observeFileSharingStatus: ObserveFileSharingStatusUseCase, validateAssetFileUseCase: ValidateAssetFileTypeUseCase, messageSendFailureHandler: MessageSendFailureHandler, pendingMessagesEnabled: Boolean = true, scope: CoroutineScope, dispatcher: KaliumDispatcher) : ScheduleNewAssetMessageUseCase

Constructors

Link copied to clipboard
constructor(persistNewAssetMessage: PersistNewAssetMessageUseCase, uploadAsset: UploadAssetUseCase, updateAssetMessageTransferStatus: UpdateAssetMessageTransferStatusUseCase, userId: UserId, slowSyncRepository: SlowSyncRepository, messageRepository: MessageRepository, observeFileSharingStatus: ObserveFileSharingStatusUseCase, validateAssetFileUseCase: ValidateAssetFileTypeUseCase, messageSendFailureHandler: MessageSendFailureHandler, pendingMessagesEnabled: Boolean = true, scope: CoroutineScope, dispatcher: KaliumDispatcher)

Functions

Link copied to clipboard
open suspend operator override fun invoke(asset: AssetUploadParams): ScheduleNewAssetMessageResult

Function that enables sending an asset message to a given conversation with the strategy of fire & forget. This message is persisted locally and the asset upload is scheduled but not awaited, so returning a ScheduleNewAssetMessageResult.Success doesn't mean that the asset upload succeeded, but instead that the creation and persistence of the initial asset message succeeded.