Marino Faggiana 6 years ago
parent
commit
3decfca727
1 changed files with 22 additions and 53 deletions
  1. 22 53
      iOSClient/Database/NCManageDatabase.swift

+ 22 - 53
iOSClient/Database/NCManageDatabase.swift

@@ -791,64 +791,33 @@ class NCManageDatabase: NSObject {
     
     @objc func addDirectory(encrypted: Bool, favorite: Bool, fileID: String?, permissions: String?, serverUrl: String, account: String) -> tableDirectory? {
         
-        var result: tableDirectory?
         let realm = try! Realm()
-
-        result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first
-        
         realm.beginWrite()
         
-        if result == nil || (result?.isInvalidated)! {
-            
-            result = tableDirectory()
-            result!.account = account
-                
-            result!.directoryID = CCUtility.createIDfromAccount(account, serverUrl: serverUrl) //NSUUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased()
-            result!.e2eEncrypted = encrypted
-            result!.favorite = favorite
-            if let fileID = fileID {
-                result!.fileID = fileID
-            }
-            if let permissions = permissions {
-                result!.permissions = permissions
-            }
-            
-            result!.serverUrl = serverUrl
-            realm.add(result!)
-            
-            do {
-                try realm.commitWrite()
-            } catch let error {
-                print("[LOG] Could not write to database: ", error)
-                return nil
-            }
-                
-        } else {
-                
-            result!.e2eEncrypted = encrypted
-            result!.favorite = favorite
-            if let fileID = fileID {
-                result!.fileID = fileID
-            }
-            if let permissions = permissions {
-                result!.permissions = permissions
-            }
-                    
-            result =  tableDirectory.init(value: result!)
-            let results = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl)
-
-            realm.delete(results)
-            realm.add(result!)
-            
-            do {
-                try realm.commitWrite()
-            } catch let error {
-                print("[LOG] Could not write to database: ", error)
-                return nil
-            }
+        let addObject = tableDirectory()
+        
+        addObject.account = account
+        addObject.directoryID = CCUtility.createIDfromAccount(account, serverUrl: serverUrl)
+        addObject.e2eEncrypted = encrypted
+        addObject.favorite = favorite
+        if let fileID = fileID {
+            addObject.fileID = fileID
         }
+        if let permissions = permissions {
+            addObject.permissions = permissions
+        }
+        addObject.serverUrl = serverUrl
         
-        return tableDirectory.init(value: result!)
+        realm.add(addObject, update: true)
+        
+        do {
+            try realm.commitWrite()
+        } catch let error {
+            print("[LOG] Could not write to database: ", error)
+            return nil
+        }
+    
+        return tableDirectory.init(value: addObject)
     }
     
     @objc func deleteDirectoryAndSubDirectory(serverUrl: String, account: String) {