Browse Source

normalized

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 years ago
parent
commit
4fadaf1a63
1 changed files with 28 additions and 3 deletions
  1. 28 3
      iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

+ 28 - 3
iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

@@ -35,7 +35,7 @@ import Foundation
     func createFolder(fileName: String, serverUrl: String, account: String, urlBase: String, userId: String) async -> (NKError) {
 
         var fileNameFolder = CCUtility.removeForbiddenCharactersServer(fileName)!
-        var fileNameFolderUrl = ""
+        var serverUrlFileName = ""
         var fileNameIdentifier = ""
 
         fileNameFolder = NCUtilityFileSystem.shared.createFileName(fileNameFolder, serverUrl: serverUrl, account: account)
@@ -43,7 +43,7 @@ import Foundation
             return NKError()
         }
         fileNameIdentifier = CCUtility.generateRandomIdentifier()
-        fileNameFolderUrl = serverUrl + "/" + fileNameIdentifier
+        serverUrlFileName = serverUrl + "/" + fileNameIdentifier
 
         // Lock
         let lockResults = await NCNetworkingE2EE.shared.lock(account: account, serverUrl: serverUrl)
@@ -51,7 +51,7 @@ import Foundation
         if lockResults.error == .success, let e2eToken = lockResults.e2eToken {
 
             let options = NKRequestOptions(customHeader: ["e2e-token": e2eToken])
-            let createFolderResults = await NextcloudKit.shared.createFolder(fileNameFolderUrl, options: options)
+            let createFolderResults = await NextcloudKit.shared.createFolder(serverUrlFileName: serverUrlFileName, options: options)
 
             if createFolderResults.error == .success {
                 guard let fileId = NCUtility.shared.ocIdToFileId(ocId: createFolderResults.ocId) else {
@@ -126,4 +126,29 @@ import Foundation
         // Send metadata
         return await NCNetworkingE2EE.shared.sendE2EMetadata(account: account, serverUrl: serverUrl, fileNameRename: nil, fileNameNewRename: nil, deleteE2eEncryption: nil, urlBase: urlBase, userId: userId)
     }
+
+    func createFolderAndMarkE2EE(serverUrlFileName: String) async -> NKError {
+
+        let createFolderResults = await NextcloudKit.shared.createFolder(serverUrlFileName: serverUrlFileName)
+        if createFolderResults.error != .success { return createFolderResults.error }
+
+        let readFileOrFolderResults = await NextcloudKit.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: "0")
+        if readFileOrFolderResults.error == .success, let file = readFileOrFolderResults.files.first {
+
+            let markE2EEFolderResults = await NextcloudKit.shared.markE2EEFolder(fileId: file.fileId, delete: false)
+            if markE2EEFolderResults.error != .success { return markE2EEFolderResults.error }
+
+            NCManageDatabase.shared.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", readFileOrFolderResults.account, file.serverUrl))
+
+            NCManageDatabase.shared.setDirectory(serverUrl: serverUrlFileName, serverUrlTo: nil, etag: nil, ocId: nil, fileId: nil, encrypted: true, richWorkspace: nil, account: markE2EEFolderResults.account)
+
+            NCManageDatabase.shared.setMetadataEncrypted(ocId: file.ocId, encrypted: true)
+
+            NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterChangeStatusFolderE2EE, userInfo: ["serverUrl": serverUrlFileName])
+
+            return markE2EEFolderResults.error
+        } else {
+            return readFileOrFolderResults.error
+        }
+    }
 }