ソースを参照

new addDirectory

Marino Faggiana 7 年 前
コミット
d001303381

+ 2 - 2
iOSClient/AutoUpload/NCAutoUpload.m

@@ -485,7 +485,7 @@
         
         tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", appDelegate.activeAccount, folderPhotos]];
         if (!tableDirectory)
-            (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:folderPhotos fileID:fileID permissions:nil encrypted:encrypted];
+            (void)[[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:encrypted etag:nil favorite:false fileID:fileID permissions:nil serverUrl:folderPhotos];
         
     } else {
         
@@ -509,7 +509,7 @@
             
             if ( error == nil) {
                 
-                (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:folderPathName fileID:fileID permissions:nil encrypted:encrypted];
+                (void)[[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:encrypted etag:nil favorite:false fileID:fileID permissions:nil serverUrl:folderPathName];
                 
             } else {
                 

+ 29 - 18
iOSClient/Database/NCManageDatabase.swift

@@ -701,42 +701,53 @@ class NCManageDatabase: NSObject {
     //MARK: -
     //MARK: Table Directory
     
-    @objc func addDirectory(serverUrl: String, fileID: String?, permissions: String?, encrypted: Bool) -> String {
+    @objc func addDirectory(dateReadDirectory: NSDate?, encrypted: Bool, etag: String?, favorite: Bool, fileID: String?, permissions: String?, serverUrl: String) -> tableDirectory? {
         
         guard let tableAccount = self.getAccountActive() else {
-            return ""
+            return nil
         }
         
+        var result :tableDirectory?
         let realm = try! Realm()
 
-        var directoryID: String = ""
-
         do {
             try realm.write {
             
-                let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first
+                result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first
             
                 if result == nil || (result?.isInvalidated)! {
                 
-                    let addObject = tableDirectory()
-                    addObject.account = tableAccount.account
+                    result = tableDirectory()
+                    result!.account = tableAccount.account
                 
-                    directoryID = NSUUID().uuidString
-                    addObject.directoryID = directoryID
-                    addObject.e2eEncrypted = encrypted
+                    if let dateReadDirectory = dateReadDirectory {
+                        result!.dateReadDirectory = dateReadDirectory
+                    }
+                    result!.directoryID = NSUUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased()
+                    result!.e2eEncrypted = encrypted
+                    if let etag = etag {
+                        result!.etag = etag
+                    }
+                    result!.favorite = favorite
                     if let fileID = fileID {
-                        addObject.fileID = fileID
+                        result!.fileID = fileID
                     }
                     if let permissions = permissions {
-                        addObject.permissions = permissions
+                        result!.permissions = permissions
                     }
-                    addObject.serverUrl = serverUrl
-                    realm.add(addObject, update: true)
+                    result!.serverUrl = serverUrl
+                    realm.add(result!, update: true)
                 
                 } else {
                 
-                    directoryID = result!.directoryID
+                    if let dateReadDirectory = dateReadDirectory {
+                        result!.dateReadDirectory = dateReadDirectory
+                    }
                     result!.e2eEncrypted = encrypted
+                    if let etag = etag {
+                        result!.etag = etag
+                    }
+                    result!.favorite = favorite
                     if let fileID = fileID {
                         result!.fileID = fileID
                     }
@@ -748,10 +759,10 @@ class NCManageDatabase: NSObject {
             }
         } catch let error {
             print("[LOG] Could not write to database: ", error)
-            return ""
+            return nil
         }
         
-        return directoryID
+        return tableDirectory.init(value: result!)
     }
     
     @objc func deleteDirectoryAndSubDirectory(serverUrl: String) {
@@ -893,7 +904,7 @@ class NCManageDatabase: NSObject {
         let realm = try! Realm()
         
         guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account,serverUrl).first else {
-            return self.addDirectory(serverUrl: serverUrl, fileID: nil,permissions: nil, encrypted: false)
+            return self.addDirectory(dateReadDirectory: nil, encrypted: false, etag: nil, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrl)?.directoryID
         }
         
         return result.directoryID

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -2212,7 +2212,7 @@
             
             // Add new directory
             NSString *newDirectory = [NSString stringWithFormat:@"%@/%@", serverUrlTo, fileName];
-            (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:newDirectory fileID:nil permissions:nil encrypted:false];
+            (void) [[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:false etag:nil favorite:false fileID:nil permissions:nil serverUrl:newDirectory];
         }
     
         // next

+ 8 - 6
iOSClient/Networking/OCNetworking.m

@@ -242,7 +242,8 @@
             OCFileDto *itemDtoFolder = [items objectAtIndex:0];
             //NSDate *date = [NSDate dateWithTimeIntervalSince1970:itemDtoDirectory.date];
         
-            NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:_metadataNet.serverUrl fileID:itemDtoFolder.ocId permissions:itemDtoFolder.permissions encrypted:itemDtoFolder.isEncrypted];
+            NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:itemDtoFolder.isEncrypted etag:itemDtoFolder.etag favorite:itemDtoFolder.isFavorite fileID:itemDtoFolder.ocId permissions:itemDtoFolder.permissions serverUrl:_metadataNet.serverUrl].directoryID;
+            
             _metadataNet.directoryID = directoryID;
 
             NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
@@ -302,7 +303,7 @@
                         
                     serverUrl = [CCUtility stringAppendServerUrl:_metadataNet.serverUrl addFileName:fileName];
                         
-                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl fileID:itemDto.ocId permissions:itemDto.permissions encrypted:itemDto.isEncrypted];
+                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:itemDto.isEncrypted etag:itemDto.etag favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:serverUrl];
                 }
                 
                 // ----- BUG #942 ---------
@@ -431,7 +432,8 @@
             
                 serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:webDAV] addFileName:serverUrl];
 
-                NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl fileID:itemDto.ocId permissions:itemDto.permissions encrypted:itemDto.isEncrypted];
+                NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:nil encrypted:itemDto.isEncrypted etag:itemDto.etag favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:serverUrl].directoryID;
+                
                 BOOL isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:_metadataNet.account];
 
                 [metadatas addObject:[CCUtility trasformedOCFileToCCMetadata:itemDto fileName:itemDto.fileName serverUrl:serverUrl directoryID:directoryID autoUploadFileName:autoUploadFileName autoUploadDirectory:autoUploadDirectory activeAccount:_metadataNet.account directoryUser:directoryUser isFolderEncrypted:isFolderEncrypted]];
@@ -590,7 +592,7 @@
                 serverUrl = [serverUrl substringToIndex:[serverUrl length] - 1];
             
             serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:webDAV] addFileName:serverUrl];
-            
+
             NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl fileID:itemDto.ocId permissions:itemDto.permissions encrypted:itemDto.isEncrypted];
             BOOL isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:_metadataNet.account];
             
@@ -605,8 +607,8 @@
             serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:webDAV] addFileName:serverUrl];
             
             if (itemDto.isDirectory) {
-                serverUrl = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
-                directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl fileID:itemDto.ocId permissions:itemDto.permissions encrypted:itemDto.isEncrypted];
+                //serverUrl = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
+                directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:[NSDate date] encrypted:itemDto.isEncrypted etag:itemDto.etag favorite:itemDto.etag fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:serverUrl].directoryID;
                 isFolderEncrypted = itemDto.isEncrypted;
             } else {
                 directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];

+ 1 - 2
iOSClient/Synchronize/CCSynchronize.m

@@ -310,8 +310,7 @@
             tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", metadataNet.account, serverUrl]];
             
             if (!tableDirectory) {
-                (void) [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl fileID:nil permissions:nil encrypted:metadata.e2eEncrypted];
-                tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account = %@ AND serverUrl = %@", metadataNet.account, serverUrl]];
+                tableDirectory = [[NCManageDatabase sharedInstance] addDirectoryWithDateReadDirectory:[NSDate date] encrypted:metadata.e2eEncrypted etag:metadata.etag favorite:metadata.favorite fileID:metadata.fileID permissions:metadata.permissions serverUrl:serverUrl];
             }
             
             // Verify changed etag