marinofaggiana 4 years ago
parent
commit
1dabbcea3e
1 changed files with 16 additions and 13 deletions
  1. 16 13
      iOSClient/Networking/NCNetworkingE2EE.swift

+ 16 - 13
iOSClient/Networking/NCNetworkingE2EE.swift

@@ -179,12 +179,16 @@ import Alamofire
         
         let objectE2eEncryption = tableE2eEncryption()
         var key: NSString?, initializationVector: NSString?, authenticationTag: NSString?
-        
-        let metadata = tableMetadata.init(value: metadata)
+        let ocIdTemp = metadata.ocId
         let serverUrl = metadata.serverUrl
-
-        metadata.fileName = CCUtility.generateRandomIdentifier()!
-        metadata.e2eEncrypted = true
+        
+        // Update metadata
+        let metadataUpdate = tableMetadata.init(value: metadata)
+        metadataUpdate.fileName = CCUtility.generateRandomIdentifier()!
+        metadataUpdate.e2eEncrypted = true
+        metadataUpdate.status = Int(k_metadataStatusInUpload)
+        metadataUpdate.session = NCCommunicationCommon.shared.sessionIdentifierUpload
+        NCManageDatabase.sharedInstance.addMetadata(metadataUpdate)
         
         let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileName)!
         let serverUrlFileName = serverUrl + "/" + metadata.fileName
@@ -223,15 +227,11 @@ import Alamofire
             return
         }
         
+        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp)) else { return }
         NCNetworkingE2EE.shared.sendE2EMetadata(account: metadata.account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, url: account.url, upload: true) { (e2eToken, errorCode, errorDescription) in
             
             if errorCode == 0 && e2eToken != nil {
                                 
-                // Start Upload file
-                metadata.status = Int(k_metadataStatusInUpload)
-                metadata.session = NCCommunicationCommon.shared.sessionIdentifierUpload
-                NCManageDatabase.sharedInstance.addMetadata(metadata)
-                
                 NotificationCenter.default.postOnMainThread(name: k_notificationCenter_reloadDataSource, userInfo: ["ocId":metadata.ocId, "serverUrl":metadata.serverUrl])
                 
                 NCCommunication.shared.upload(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, dateCreationFile: metadata.date as Date, dateModificationFile: metadata.date as Date, addCustomHeaders: ["e2e-token":e2eToken!], requestHandler: { (request) in
@@ -259,7 +259,7 @@ import Alamofire
                         
                         guard let metadataTemp = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId)) else { return }
                         let metadata = tableMetadata.init(value: metadataTemp)
-                        let ocIdTemp = metadata.ocId
+                       
                         
                         CCUtility.moveFile(atPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId), toPath:  CCUtility.getDirectoryProviderStorageOcId(ocId))
                             
@@ -311,8 +311,9 @@ import Alamofire
                 
             } else {
                 
-                let metadata = tableMetadata.init(value: metadata)
-                NotificationCenter.default.postOnMainThread(name: k_notificationCenter_uploadedFile, userInfo: ["metadata":metadata, "errorCode":errorCode, "errorDescription":errorDescription ?? ""])
+                if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", ocIdTemp)) {
+                    NotificationCenter.default.postOnMainThread(name: k_notificationCenter_uploadedFile, userInfo: ["metadata":metadata, "errorCode":errorCode, "errorDescription":errorDescription ?? ""])
+                }
                 
                 completion(errorCode, errorDescription ?? "")
             }
@@ -394,6 +395,8 @@ import Alamofire
                     let tableE2eEncryption = NCManageDatabase.sharedInstance.getE2eEncryptions(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", account, serverUrl))
                     if tableE2eEncryption != nil {
                         e2eMetadataNew = NCEndToEndMetadata.sharedInstance.encoderMetadata(tableE2eEncryption!, privateKey: CCUtility.getEndToEndPrivateKey(account), serverUrl: serverUrl)
+                    } else {
+                        method = "DELETE"
                     }
                     
                     NCCommunication.shared.putE2EEMetadata(fileId: directory!.fileId, e2eToken: e2eToken!, e2eMetadata: e2eMetadataNew, method: method) { (account, e2eMetadata, errorCode, errorDescription) in