|
@@ -2310,16 +2310,18 @@ class NCManageDatabase: NSObject {
|
|
|
return metadataNet
|
|
|
}
|
|
|
|
|
|
- @objc func getQueueUploadLock() -> CCMetadataNet? {
|
|
|
+ @objc func getQueueUploadPathLock() -> CCMetadataNet? {
|
|
|
|
|
|
guard let tableAccount = self.getAccountActive() else {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
let realm = try! Realm()
|
|
|
- realm.refresh()
|
|
|
|
|
|
- guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND lock == false", tableAccount.account).sorted(byKeyPath: "date", ascending: true).first else {
|
|
|
+ realm.beginWrite()
|
|
|
+
|
|
|
+ guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND lock == false AND path != nil", tableAccount.account).sorted(byKeyPath: "date", ascending: true).first else {
|
|
|
+ realm.cancelWrite()
|
|
|
return nil
|
|
|
}
|
|
|
|
|
@@ -2335,10 +2337,20 @@ class NCManageDatabase: NSObject {
|
|
|
metadataNet.session = result.session
|
|
|
metadataNet.taskStatus = Int(k_taskStatusResume)
|
|
|
|
|
|
+ // Lock
|
|
|
+ result.lock = true
|
|
|
+
|
|
|
+ do {
|
|
|
+ try realm.commitWrite()
|
|
|
+ } catch let error {
|
|
|
+ print("[LOG] Could not write to database: ", error)
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
return metadataNet
|
|
|
}
|
|
|
|
|
|
- @objc func getLockQueueUpload() -> [tableQueueUpload]? {
|
|
|
+ @objc func getQueueUploadInLock() -> [tableQueueUpload]? {
|
|
|
|
|
|
guard let tableAccount = self.getAccountActive() else {
|
|
|
return nil
|
|
@@ -2366,6 +2378,34 @@ class NCManageDatabase: NSObject {
|
|
|
return Array(results.map { tableQueueUpload.init(value:$0) })
|
|
|
}
|
|
|
|
|
|
+ @objc func getQueueUpload() -> CCMetadataNet? {
|
|
|
+
|
|
|
+ guard let tableAccount = self.getAccountActive() else {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ let realm = try! Realm()
|
|
|
+ realm.refresh()
|
|
|
+
|
|
|
+ guard let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND lock == false", tableAccount.account).sorted(byKeyPath: "date", ascending: true).first else {
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ let metadataNet = CCMetadataNet()
|
|
|
+
|
|
|
+ metadataNet.account = result.account
|
|
|
+ metadataNet.assetLocalIdentifier = result.assetLocalIdentifier
|
|
|
+ metadataNet.fileName = result.fileName
|
|
|
+ metadataNet.path = result.path
|
|
|
+ metadataNet.selector = result.selector
|
|
|
+ metadataNet.selectorPost = result.selectorPost
|
|
|
+ metadataNet.serverUrl = result.serverUrl
|
|
|
+ metadataNet.session = result.session
|
|
|
+ metadataNet.taskStatus = Int(k_taskStatusResume)
|
|
|
+
|
|
|
+ return metadataNet
|
|
|
+ }
|
|
|
+
|
|
|
@objc func unlockQueueUpload(assetLocalIdentifier: String) {
|
|
|
|
|
|
guard let tableAccount = self.getAccountActive() else {
|
|
@@ -2411,6 +2451,26 @@ class NCManageDatabase: NSObject {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @objc func deleteQueueUpload(path: String) {
|
|
|
+
|
|
|
+ guard let tableAccount = self.getAccountActive() else {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let realm = try! Realm()
|
|
|
+
|
|
|
+ do {
|
|
|
+ try realm.write {
|
|
|
+
|
|
|
+ if let result = realm.objects(tableQueueUpload.self).filter("account = %@ AND path = %@", tableAccount.account, path).first {
|
|
|
+ realm.delete(result)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch let error {
|
|
|
+ print("[LOG] Could not write to database: ", error)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//MARK: -
|
|
|
//MARK: Table Share
|
|
|
|