mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Moved the JobRunner into SessionUtilitiesKit so it can be used by SessionSnodeKit Exposed a 'sharedLokiProject' value on UserDefaults to remove the hard-coded group name used everywhere Added "blocking" job support for 'OnLaunch' and 'OnActive' jobs to the JobRunner (will retry until it succeeds) Added the UpdateProfilePicture and RetrieveDefaultOpenGroupRooms jobs
31 lines
1,016 B
Swift
31 lines
1,016 B
Swift
// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
|
|
|
|
import Foundation
|
|
import GRDB
|
|
import SignalCoreKit
|
|
import SessionUtilitiesKit
|
|
|
|
public enum FailedAttachmentDownloadsJob: JobExecutor {
|
|
public static let maxFailureCount: Int = -1
|
|
public static let requiresThreadId: Bool = false
|
|
public static let requiresInteractionId: Bool = false
|
|
|
|
public static func run(
|
|
_ job: Job,
|
|
success: @escaping (Job, Bool) -> (),
|
|
failure: @escaping (Job, Error?, Bool) -> (),
|
|
deferred: @escaping (Job) -> ()
|
|
) {
|
|
// Update all 'sending' message states to 'failed'
|
|
GRDBStorage.shared.write { db in
|
|
let changeCount: Int = try Attachment
|
|
.filter(Attachment.Columns.state == Attachment.State.downloading)
|
|
.updateAll(db, Attachment.Columns.state.set(to: Attachment.State.failed))
|
|
|
|
Logger.debug("Marked \(changeCount) attachments as failed")
|
|
}
|
|
|
|
success(job, false)
|
|
}
|
|
}
|