Browse Source

deleteFileOrFolderSuccessFailure

Marino Faggiana 7 years ago
parent
commit
d355a6f118

+ 53 - 53
iOSClient/Actions/CCActions.swift

@@ -25,8 +25,7 @@ import Foundation
 
 @objc protocol CCActionsDeleteDelegate {
     
-    func deleteFileOrFolderSuccess(_ metadataNet: CCMetadataNet)
-    func deleteFileOrFolderFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger)
+    func deleteFileOrFolderSuccessFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger)
 }
 
 @objc protocol CCActionsRenameDelegate {
@@ -132,78 +131,79 @@ class CCActions: NSObject {
         }
     }
     
-    @objc func deleteFileOrFolderSuccess(_ metadataNet: CCMetadataNet) {
+    @objc func deleteFileOrFolderSuccessFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger) {
+
+        if (errorCode == 0) {
         
-        let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", metadataNet.fileID))
+            let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", metadataNet.fileID))
         
-        if let metadata = metadata {
-            self.deleteFile(metadata: metadata, serverUrl: metadataNet.serverUrl)
-        }
+            if let metadata = metadata {
+                self.deleteFile(metadata: metadata, serverUrl: metadataNet.serverUrl)
+            }
         
-        guard let tableDirectory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account = %@ AND serverUrl = %@", self.appDelegate.activeAccount, metadataNet.serverUrl)) else {
-            self.deleteFileOrFolderFailure(metadataNet, message: "Internal error, tableDirectory not found", errorCode: 0)
-            return
-        }
+            guard let tableDirectory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account = %@ AND serverUrl = %@", self.appDelegate.activeAccount, metadataNet.serverUrl)) else {
+                self.deleteFileOrFolderSuccessFailure(metadataNet, message: "Internal error, tableDirectory not found", errorCode: 0)
+                return
+            }
         
-        // E2EE Rebuild and send Metadata
-        if tableDirectory.e2eEncrypted {
+            // E2EE Rebuild and send Metadata
+            if tableDirectory.e2eEncrypted {
 
-            DispatchQueue.global().async {
+                DispatchQueue.global().async {
                 
-                var errorUnlock: NSError?
-                var errorRebuild: NSError?
-                var token: String?
+                    var errorUnlock: NSError?
+                    var errorRebuild: NSError?
+                    var token: String?
                 
-                // Send Metadata
-                errorRebuild = NCNetworkingSync.sharedManager().rebuildAndSendEndToEndMetadata(onServerUrl: metadataNet.serverUrl, account: self.appDelegate.activeAccount, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl) as NSError?
-                if (errorRebuild != nil) {
-                    DispatchQueue.main.async {
-                        self.deleteFileOrFolderFailure(metadataNet, message: errorRebuild!.localizedDescription as NSString, errorCode: errorRebuild!.code)
+                    // Send Metadata
+                    errorRebuild = NCNetworkingSync.sharedManager().rebuildAndSendEndToEndMetadata(onServerUrl: metadataNet.serverUrl, account: self.appDelegate.activeAccount, user: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl) as NSError?
+                    if (errorRebuild != nil) {
+                        DispatchQueue.main.async {
+                            self.deleteFileOrFolderSuccessFailure(metadataNet, message: errorRebuild!.localizedDescription as NSString, errorCode: errorRebuild!.code)
+                        }
                     }
-                }
                 
-                // Unlock
-                token = NCManageDatabase.sharedInstance.getDirectoryE2ETokenLock(serverUrl: metadataNet.serverUrl)
-                if (token != nil) {
-                    errorUnlock = NCNetworkingSync.sharedManager().unlockEnd(toEndFolderEncrypted: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl, serverUrl: metadataNet.serverUrl,fileID: tableDirectory.fileID, token: token) as NSError?
-                    if (errorUnlock != nil) {
-                        DispatchQueue.main.async {
-                            self.deleteFileOrFolderFailure(metadataNet, message: errorUnlock!.localizedDescription as NSString, errorCode: errorUnlock!.code)
+                    // Unlock
+                    token = NCManageDatabase.sharedInstance.getDirectoryE2ETokenLock(serverUrl: metadataNet.serverUrl)
+                    if (token != nil) {
+                        errorUnlock = NCNetworkingSync.sharedManager().unlockEnd(toEndFolderEncrypted: self.appDelegate.activeUser, userID: self.appDelegate.activeUserID, password: self.appDelegate.activePassword, url: self.appDelegate.activeUrl, serverUrl: metadataNet.serverUrl,fileID: tableDirectory.fileID, token: token) as NSError?
+                        if (errorUnlock != nil) {
+                            DispatchQueue.main.async {
+                                self.deleteFileOrFolderSuccessFailure(metadataNet, message: errorUnlock!.localizedDescription as NSString, errorCode: errorUnlock!.code)
+                            }
                         }
+                    } else {
+                        print("Error unlock not found")
                     }
-                } else {
-                    print("Error unlock not found")
-                }
                 
-                if (errorRebuild == nil && errorUnlock == nil) {
-                    DispatchQueue.main.async {
-                        metadataNet.delegate?.deleteFileOrFolderSuccess(metadataNet)
+                    if (errorRebuild == nil && errorUnlock == nil) {
+                        DispatchQueue.main.async {
+                             metadataNet.delegate?.deleteFileOrFolderSuccessFailure(metadataNet, message: "", errorCode: 0)
+                        }
                     }
                 }
-            }
             
+            } else {
+                metadataNet.delegate?.deleteFileOrFolderSuccessFailure(metadataNet, message: "", errorCode: 0)
+            }
         } else {
-            metadataNet.delegate?.deleteFileOrFolderSuccess(metadataNet)
-        }
-    }
-    
-    @objc func deleteFileOrFolderFailure(_ metadataNet: CCMetadataNet, message: NSString, errorCode: NSInteger) {
-        
-        if errorCode == 404 {
             
-            let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", metadataNet.fileID))
+            if errorCode == 404 {
+                
+                let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", metadataNet.fileID))
+                
+                if metadata != nil {
+                    self.deleteFile(metadata: metadata!, serverUrl: metadataNet.serverUrl)
+                }
+            }
             
-            if metadata != nil {
-                self.deleteFile(metadata: metadata!, serverUrl: metadataNet.serverUrl)
+            if message.length > 0 {
+                
+                appDelegate.messageNotification("_delete_", description: message as String, visible: true, delay:TimeInterval(k_dismissAfterSecond), type:TWMessageBarMessageType.error, errorCode: errorCode)
             }
-        }
-
-        if message.length > 0 {
             
-            appDelegate.messageNotification("_delete_", description: message as String, visible: true, delay:TimeInterval(k_dismissAfterSecond), type:TWMessageBarMessageType.error, errorCode: errorCode)
+            metadataNet.delegate?.deleteFileOrFolderSuccessFailure(metadataNet, message: message, errorCode: errorCode)
         }
-        
-        metadataNet.delegate?.deleteFileOrFolderFailure(metadataNet, message: message, errorCode: errorCode)
     }
     
     // --------------------------------------------------------------------------------------------

+ 5 - 7
iOSClient/Favorites/CCFavorites.m

@@ -165,14 +165,12 @@
 #pragma mark ===== Delete <delegate> =====
 #pragma--------------------------------------------------------------------------------------------
 
-- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    NSLog(@"[LOG] DeleteFileOrFolder failure error %d, %@", (int)errorCode, message);
-}
-
-- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
-{
-    [self reloadDatasource];
+    if (errorCode == 0)
+        [self reloadDatasource];
+    else
+        NSLog(@"[LOG] DeleteFileOrFolder failure error %d, %@", (int)errorCode, message);
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 38 - 41
iOSClient/Main/CCDetail.m

@@ -872,65 +872,62 @@
 #pragma mark ===== Delete =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
-    NSLog(@"[LOG] DeleteFileOrFolder failure error %d, %@", (int)errorCode, message);
-}
-
-- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
-{
-    // reload Main
-    [appDelegate.activeMain reloadDatasource];
-    
-    // If removed document (web) or PDF close
-    if (_webView || _readerPDFViewController)
-        [self removeAllView];
+    if (errorCode == 0) {
         
-    // if a message for a directory of these
-    if (![_dataSourceDirectoryID containsObject:metadataNet.directoryID])
-        return;
+        // reload Main
+        [appDelegate.activeMain reloadDatasource];
     
-    // if we are not in browserPhoto and it's removed photo/video in preview then "< Back"
-    if (!self.photoBrowser && [self.metadataDetail.fileID isEqualToString:metadataNet.fileID]) {
+        // If removed document (web) or PDF close
+        if (_webView || _readerPDFViewController)
+            [self removeAllView];
         
+        // if a message for a directory of these
+        if (![_dataSourceDirectoryID containsObject:metadataNet.directoryID])
+            return;
+    
+        // if we are not in browserPhoto and it's removed photo/video in preview then "< Back"
+        if (!self.photoBrowser && [self.metadataDetail.fileID isEqualToString:metadataNet.fileID]) {
         
-        NSArray *viewsToRemove = [self.view subviews];
-        for (id element in viewsToRemove) {
+            NSArray *viewsToRemove = [self.view subviews];
+            for (id element in viewsToRemove) {
             
-            if ([element isMemberOfClass:[UIView class]] || [element isMemberOfClass:[UIToolbar class]])
-                [element removeFromSuperview];
-        }
+                if ([element isMemberOfClass:[UIView class]] || [element isMemberOfClass:[UIToolbar class]])
+                    [element removeFromSuperview];
+            }
         
-        self.title = @"";
+            self.title = @"";
         
-        [self.navigationController popViewControllerAnimated:YES];
+            [self.navigationController popViewControllerAnimated:YES];
         
-    } else {
+        } else {
     
-        // only photoBrowser if exists
-        for (NSUInteger index=0; index < [self.dataSourceImagesVideos count] && _photoBrowser; index++ ) {
+            // only photoBrowser if exists
+            for (NSUInteger index=0; index < [self.dataSourceImagesVideos count] && _photoBrowser; index++ ) {
         
-            tableMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:index];
+                tableMetadata *metadata = [self.dataSourceImagesVideos objectAtIndex:index];
         
-            // ricerca index
-            if ([metadata.fileID isEqualToString:metadataNet.fileID]) {
-            
-                [self.dataSourceImagesVideos removeObjectAtIndex:index];
-            
-                [self.photos removeObjectAtIndex:index];
+                // ricerca index
+                if ([metadata.fileID isEqualToString:metadataNet.fileID]) {
             
-                [self.photoBrowser reloadData];
+                    [self.dataSourceImagesVideos removeObjectAtIndex:index];
+                    [self.photos removeObjectAtIndex:index];
+                    [self.photoBrowser reloadData];
             
-                // Title
-                if ([self.dataSourceImagesVideos count] == 0) {
+                    // Title
+                    if ([self.dataSourceImagesVideos count] == 0) {
                 
-                    self.title = @"";
-                    [self.navigationController popViewControllerAnimated:YES];
-                }
+                        self.title = @"";
+                        [self.navigationController popViewControllerAnimated:YES];
+                    }
             
-                break;
+                    break;
+                }
             }
         }
+    } else {
+        NSLog(@"[LOG] DeleteFileOrFolder failure error %d, %@", (int)errorCode, message);
     }
 }
 

+ 2 - 9
iOSClient/Main/CCMain.m

@@ -2034,19 +2034,12 @@
 #pragma mark ===== Delete File or Folder =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
+- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     // Unauthorized
     if (errorCode == kOCErrorServerUnauthorized)
         [appDelegate openLoginView:self loginType:loginModifyPasswordUser];
-
-    NSLog(@"[LOG] Delete File failure error %d, %@", (int)errorCode, message);
-
-    [self deleteFileOrFolderSuccess:metadataNet];
-}
-
-- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
-{
+    
     [_queueSelector removeObject:metadataNet.selector];
     
     if ([_queueSelector count] == 0) {

+ 1 - 2
iOSClient/Networking/OCNetworking.h

@@ -57,8 +57,7 @@
 - (void)createFolderSuccess:(CCMetadataNet *)metadataNet;
 - (void)createFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
-- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet;
-- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
+- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode;
 
 - (void)moveSuccess:(CCMetadataNet *)metadataNet;
 - (void)renameSuccess:(CCMetadataNet *)metadataNet;

+ 5 - 5
iOSClient/Networking/OCNetworking.m

@@ -722,8 +722,8 @@
     
     [communication deleteFileOrFolder:serverFileUrl onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
         
-        if ([_metadataNet.selector rangeOfString:selectorDelete].location != NSNotFound && [self.delegate respondsToSelector:@selector(deleteFileOrFolderSuccess:)])
-            [self.delegate deleteFileOrFolderSuccess:_metadataNet];
+        if ([_metadataNet.selector rangeOfString:selectorDelete].location != NSNotFound && [self.delegate respondsToSelector:@selector(deleteFileOrFolderSuccessFailure:message:errorCode:)])
+            [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:@"" errorCode:0];
         
         [self complete];
         
@@ -734,12 +734,12 @@
             errorCode = error.code;
         
         // Error
-        if ([self.delegate respondsToSelector:@selector(deleteFileOrFolderFailure:message:errorCode:)]) {
+        if ([self.delegate respondsToSelector:@selector(deleteFileOrFolderSuccessFailure:message:errorCode:)]) {
             
             if (errorCode == 503)
-                [self.delegate deleteFileOrFolderFailure:_metadataNet message:NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil) errorCode:errorCode];
+                [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil) errorCode:errorCode];
             else
-                [self.delegate deleteFileOrFolderFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
+                [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
         }
         
         // Request trusted certificated

+ 1 - 6
iOSClient/Photos/CCPhotos.m

@@ -414,12 +414,7 @@
 #pragma mark ===== Delete =====
 #pragma--------------------------------------------------------------------------------------------
 
-- (void)deleteFileOrFolderFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
-{
-    [self deleteFileOrFolderSuccess:metadataNet];
-}
-
-- (void)deleteFileOrFolderSuccess:(CCMetadataNet *)metadataNet
+- (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [_queueMetadatas removeObject:metadataNet.selector];