Browse Source

clear code

Marino Faggiana 6 years ago
parent
commit
8e9abaf167

+ 39 - 37
File Provider Extension/FileProviderExtension+Actions.swift

@@ -41,50 +41,52 @@ extension FileProviderExtension {
         let serverUrl = tableDirectory.serverUrl
         
         let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
-        ocNetworking?.createFolder(directoryName, serverUrl: serverUrl, account: providerData.account, success: { (account, fileID, date) in
+        ocNetworking?.createFolder(withAccount: providerData.account, serverUrl: serverUrl, fileName: directoryName, completion: { (account, fileID, date, message, errorCode) in
             
-            let metadata = tableMetadata()
-            
-            metadata.account = account!
-            metadata.directory = true
-            metadata.fileID = fileID!
-            metadata.fileName = directoryName
-            metadata.fileNameView = directoryName
-            metadata.serverUrl = serverUrl
-            metadata.typeFile = k_metadataTypeFile_directory
-            
-            // METADATA
-            guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
-                completionHandler(nil, NSFileProviderError(.noSuchItem))
-                return
-            }
-            
-            // DIRECTORY
-            guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: fileID!, permissions: nil, serverUrl: serverUrl + "/" + directoryName, account: account!) else {
-                completionHandler(nil, NSFileProviderError(.noSuchItem))
-                return
-            }
-            
-            let parentItemIdentifier = self.providerData.getParentItemIdentifier(metadata: metadataDB)
-            if parentItemIdentifier != nil {
+            if errorCode == 0 && account == self.providerData.account {
+                
+                let metadata = tableMetadata()
                 
-                let item = FileProviderItem(metadata: metadataDB, parentItemIdentifier: parentItemIdentifier!, providerData: self.providerData)
+                metadata.account = account!
+                metadata.directory = true
+                metadata.fileID = fileID!
+                metadata.fileName = directoryName
+                metadata.fileNameView = directoryName
+                metadata.serverUrl = serverUrl
+                metadata.typeFile = k_metadataTypeFile_directory
                 
-                self.providerData.queueTradeSafe.sync(flags: .barrier) {
-                    self.providerData.fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
-                    self.providerData.fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
+                // METADATA
+                guard let metadataDB = NCManageDatabase.sharedInstance.addMetadata(metadata) else {
+                    completionHandler(nil, NSFileProviderError(.noSuchItem))
+                    return
+                }
+                
+                // DIRECTORY
+                guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: fileID!, permissions: nil, serverUrl: serverUrl + "/" + directoryName, account: account!) else {
+                    completionHandler(nil, NSFileProviderError(.noSuchItem))
+                    return
                 }
-
-                self.providerData.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
-
-                completionHandler(item, nil)
                 
+                let parentItemIdentifier = self.providerData.getParentItemIdentifier(metadata: metadataDB)
+                if parentItemIdentifier != nil {
+                    
+                    let item = FileProviderItem(metadata: metadataDB, parentItemIdentifier: parentItemIdentifier!, providerData: self.providerData)
+                    
+                    self.providerData.queueTradeSafe.sync(flags: .barrier) {
+                        self.providerData.fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
+                        self.providerData.fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
+                    }
+                    
+                    self.providerData.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+                    
+                    completionHandler(item, nil)
+                    
+                } else {
+                    completionHandler(nil, NSFileProviderError(.noSuchItem))
+                }
             } else {
-                completionHandler(nil, NSFileProviderError(.noSuchItem))
+                completionHandler(nil, NSFileProviderError(.serverUnreachable))
             }
-            
-        }, failure: { (account, errorMessage, errorCode) in
-            completionHandler(nil, NSFileProviderError(.serverUnreachable))
         })
     }
     

+ 22 - 22
iOSClient/Main/CCMain.m

@@ -1773,13 +1773,13 @@
     
     // Creeate folder Networking
     OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:nil withUserID:nil withPassword:nil withUrl:nil];
-    [ocNetworking createFolder:fileNameFolder serverUrl:serverUrl account:appDelegate.activeAccount success:^(NSString *account, NSString *fileID, NSDate *date) {
-
-        if ([account isEqualToString:appDelegate.activeAccount]) {
+    [ocNetworking createFolderWithAccount:appDelegate.activeAccount serverUrl:serverUrl fileName:fileNameFolder completion:^(NSString *account, NSString *fileID, NSDate *date, NSString *message, NSInteger errorCode) {
+       
+        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount]) {
             
             // Delete Temp Dir
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileIDTemp]];
-
+            
             NSString *newDirectory = [NSString stringWithFormat:@"%@/%@", serverUrl, fileNameFolder];
             
             if (_metadataFolder.e2eEncrypted) {
@@ -1798,25 +1798,25 @@
                 
                 [self readFolder:self.serverUrl];
             }
+            
+        } else if (errorCode == 0) {
+            
+            // Unauthorized
+            if (errorCode == kOCErrorServerUnauthorized)
+                [appDelegate openLoginView:self loginType:k_login_Modify_Password selector:k_intro_login];
+            else
+                [appDelegate messageNotification:@"_create_folder_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
+            
+            // Delete Temp Dir
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileIDTemp]];
+            
+            [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.serverUrl fileID:nil action:k_action_NULL];
+            
+            // We are in directory fail ?
+            CCMain *vc = [appDelegate.listMainVC objectForKey:[CCUtility stringAppendServerUrl:_serverUrl addFileName:fileNameFolder]];
+            if (vc)
+                [vc.navigationController popViewControllerAnimated:YES];
         }
-        
-    } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        // Unauthorized
-        if (errorCode == kOCErrorServerUnauthorized)
-            [appDelegate openLoginView:self loginType:k_login_Modify_Password selector:k_intro_login];
-        else
-            [appDelegate messageNotification:@"_create_folder_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        
-        // Delete Temp Dir
-        [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileIDTemp]];
-        
-        [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.serverUrl fileID:nil action:k_action_NULL];
-        
-        // We are in directory fail ?
-        CCMain *vc = [appDelegate.listMainVC objectForKey:[CCUtility stringAppendServerUrl:_serverUrl addFileName:fileNameFolder]];
-        if (vc)
-            [vc.navigationController popViewControllerAnimated:YES];
     }];
 }
 

+ 10 - 9
iOSClient/Move/CCMove.m

@@ -343,15 +343,16 @@
 - (void)createFolder:(NSString *)fileNameFolder
 {
     OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:nil withUserID:nil withPassword:nil withUrl:nil];
-    [ocNetworking createFolder:fileNameFolder serverUrl:_serverUrl account:activeAccount success:^(NSString *account, NSString *fileID, NSDate *date) {
-        [self readFolder];
-    } failure:^(NSString *account, NSString *message, NSInteger errorCode) {
-        UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_",nil) message:message preferredStyle:UIAlertControllerStyleAlert];
-        
-        [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
-        }]];
-        
-        [self presentViewController:alertController animated:YES completion:nil];
+    [ocNetworking createFolderWithAccount:activeAccount serverUrl:_serverUrl fileName:fileNameFolder completion:^(NSString *account, NSString *fileID, NSDate *date, NSString *message, NSInteger errorCode) {
+       
+        if (errorCode == 0 && [account isEqualToString:activeAccount]) {
+            [self readFolder];
+        } else if (errorCode != 0) {
+            
+            UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_error_",nil) message:message preferredStyle:UIAlertControllerStyleAlert];
+            [alertController addAction: [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { }]];
+            [self presentViewController:alertController animated:YES completion:nil];
+        }
     }];
 }
 

+ 1 - 1
iOSClient/Networking/OCNetworking.h

@@ -63,7 +63,7 @@
 
 - (void)deleteFileOrFolder:(NSString *)path account:(NSString *)account completion:(void (^)(NSString *account, NSString *message, NSInteger errorCode))completion;
 
-- (void)createFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *account, NSString *fileID, NSDate *date))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure;
+- (void)createFolderWithAccount:(NSString *)account serverUrl:(NSString *)serverUrl fileName:(NSString *)fileName completion:(void(^)(NSString *account, NSString *fileID, NSDate *date, NSString *message, NSInteger errorCode))completion;
 
 - (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo account:(NSString *)account success:(void (^)(NSString *account))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure;
 

+ 5 - 5
iOSClient/Networking/OCNetworking.m

@@ -961,11 +961,11 @@
 #pragma mark ===== Create Folder =====
 #pragma --------------------------------------------------------------------------------------------
 
-- (void)createFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *account, NSString *fileID, NSDate *date))success failure:(void (^)(NSString *account, NSString *message, NSInteger errorCode))failure
+- (void)createFolderWithAccount:(NSString *)account serverUrl:(NSString *)serverUrl fileName:(NSString *)fileName completion:(void(^)(NSString *account, NSString *fileID, NSDate *date, NSString *message, NSInteger errorCode))completion
 {
     tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountWithPredicate:[NSPredicate predicateWithFormat:@"account == %@", account]];
     if (tableAccount == nil) {
-        failure(account, NSLocalizedString(@"_error_user_not_available_", nil), k_CCErrorUserNotAvailble);
+        completion(account, nil, nil, NSLocalizedString(@"_error_user_not_available_", nil), k_CCErrorUserNotAvailble);
     }
     
     NSString *path = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
@@ -984,7 +984,7 @@
         NSString *fileID = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
         NSDate *date = [CCUtility dateEnUsPosixFromCloud:[fields objectForKey:@"Date"]];
             
-        success(account, fileID, date);
+        completion(account, fileID, date, nil, 0);
         
     } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
 
@@ -1006,7 +1006,7 @@
         // Activity
         [[NCManageDatabase sharedInstance] addActivityClient:path fileID:@"" action:k_activityDebugActionCreateFolder selector:@"" note:NSLocalizedString(@"_not_possible_create_folder_", nil) type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:tableAccount.url];
 
-        failure(account, message, errorCode);
+        completion(account, nil, nil, message, errorCode);
 
     } errorBeforeRequest:^(NSError *error) {
         
@@ -1021,7 +1021,7 @@
                 message = NSLocalizedString(@"_unknow_response_server_", nil);
         }
         
-        failure(account, message, error.code);
+        completion(account, nil, nil, message, error.code);
     }];
 }
 

+ 6 - 4
iOSClient/Select/NCSelect.swift

@@ -462,10 +462,12 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
     func createFolder(with fileName: String) {
         
         let ocNetworking = OCnetworking.init(delegate: self, metadataNet: nil, withUser: nil, withUserID: nil, withPassword: nil, withUrl: nil)
-        ocNetworking?.createFolder(fileName, serverUrl: serverUrl, account: appDelegate.activeAccount, success: { (account, fileID, date) in
-            self.loadDatasource(withLoadFolder: true)
-        }, failure: { (account, message, errorCode) in
-            self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
+        ocNetworking?.createFolder(withAccount: appDelegate.activeAccount, serverUrl: serverUrl, fileName: fileName, completion: { (account, fileID, date, message, errorCode) in
+            if errorCode == 0 && account == self.appDelegate.activeAccount {
+                self.loadDatasource(withLoadFolder: true)
+            } else if errorCode != 0 {
+                self.appDelegate.messageNotification("_error_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
+            }
         })
     }