Browse Source

fix createFolder asset

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 years ago
parent
commit
fe5f037a83
1 changed files with 24 additions and 6 deletions
  1. 24 6
      iOSClient/Networking/NCNetworking.swift

+ 24 - 6
iOSClient/Networking/NCNetworking.swift

@@ -1001,16 +1001,34 @@ import Photos
 
     func createFolder(assets: [PHAsset], selector: String, useSubFolder: Bool, account: String, urlBase: String, userId: String) -> Bool {
 
-        let serverUrl = NCManageDatabase.shared.getAccountAutoUploadDirectory(urlBase: urlBase, userId: userId, account: account)
-        let fileName =  NCManageDatabase.shared.getAccountAutoUploadFileName()
         let autoUploadPath = NCManageDatabase.shared.getAccountAutoUploadPath(urlBase: urlBase, userId: userId, account: account)
-        var result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId)
+        let serverUrlBase = NCManageDatabase.shared.getAccountAutoUploadDirectory(urlBase: urlBase, userId: userId, account: account)
+        let fileNameBase =  NCManageDatabase.shared.getAccountAutoUploadFileName()
+
+        func createFolder(fileName: String, serverUrl: String) -> Bool {
+            var result: Bool = false
+            let semaphore = DispatchSemaphore(value: 0)
+            NCNetworking.shared.createFolder(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId, overwrite: true) { error in
+                if error == .success { result = true }
+                semaphore.signal()
+            }
+            semaphore.wait()
+            return result
+        }
+
+        var result = createFolder(fileName: fileNameBase, serverUrl: serverUrlBase)
 
         if useSubFolder && result {
             for dateSubFolder in createNameSubFolder(assets: assets) {
-                let fileName = (dateSubFolder as NSString).lastPathComponent
-                let serverUrl = ((autoUploadPath + "/" + dateSubFolder) as NSString).deletingLastPathComponent
-                result = createFolderWithSemaphore(fileName: fileName, serverUrl: serverUrl, account: account, urlBase: urlBase, userId: userId)
+                let yearMonth = dateSubFolder.split(separator: "/")
+                guard let year = yearMonth.first else { break }
+                guard let month = yearMonth.last else { break }
+                let serverUrlYear = autoUploadPath
+                let serverUrlMonth = autoUploadPath + "/" + year
+                result = createFolder(fileName: String(year), serverUrl: serverUrlYear)
+                if result {
+                    result = createFolder(fileName: String(month), serverUrl: serverUrlMonth)
+                }
                 if !result { break }
             }
         }