Browse Source

Add deleteFileOrFolder

Marino Faggiana 7 years ago
parent
commit
a612556433

+ 1 - 0
iOSClient/CCGlobal.h

@@ -260,6 +260,7 @@ extern NSString *const flowEndpoint;
 #define k_activityDebugActionUploadShare                @"Upload Share"
 #define k_activityDebugActionAutoUpload                 @"Auto Upload"
 #define k_activityDebugActionReadFolder                 @"Read Folder"
+#define k_activityDebugActionDeleteFileFolder           @"Delete File-Folder"
 #define k_activityDebugActionGetNotification            @"Get Notification Server"
 #define k_activityDebugActionPushProxy                  @"Subscribing Push Proxy"
 #define k_activityDebugActionServerPush                 @"Subscribing Server Push"

+ 1 - 0
iOSClient/Networking/OCNetworking.h

@@ -45,6 +45,7 @@
 - (void)downloadFileNameServerUrl:(NSString *)fileNameServerUrl fileNameLocalPath:(NSString *)fileNameLocalPath success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 - (void)downloadThumbnailWithDimOfThumbnail:(NSString *)dimOfThumbnail fileName:(NSString *)fileName fileNameLocal:(NSString *)fileNameLocal success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 - (void)readFolderWithServerUrl:(NSString *)serverUrl depth:(NSString *)depth account:(NSString *)account success:(void(^)(NSArray *metadatas, tableMetadata *metadataFolder, NSString *directoryID))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
+- (void)deleteFileOrFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 
 @end
 

+ 47 - 13
iOSClient/Networking/OCNetworking.m

@@ -905,27 +905,61 @@
         
     } failureRquest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
         
-        NSInteger errorCode = response.statusCode;
-        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
-            errorCode = error.code;
+        NSString *message = [NSString new];
+        NSInteger errorCode = [self deleteFileOrFolderFailureServerUrl:_metadataNet.serverUrl response:response error:error message:&message];
         
-        // Error
         if ([self.delegate respondsToSelector:@selector(deleteFileOrFolderSuccessFailure:message:errorCode:)]) {
-            
-            if (errorCode == 503)
-                [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil) errorCode:errorCode];
-            else
-                [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:[error.userInfo valueForKey:@"NSLocalizedDescription"] errorCode:errorCode];
+            [self.delegate deleteFileOrFolderSuccessFailure:_metadataNet message:message errorCode:errorCode];
         }
         
-        // Request trusted certificated
-        if ([error code] == NSURLErrorServerCertificateUntrusted)
-            [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
-        
         [self complete];
     }];
 }
 
+- (void)deleteFileOrFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    NSString *serverFileUrl = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication deleteFileOrFolder:serverFileUrl onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+        
+        success();
+        
+    } failureRquest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        NSString *message = [NSString new];
+        NSInteger errorCode = [self deleteFileOrFolderFailureServerUrl:serverUrl response:response error:error message:&message];
+        
+        failure(message, errorCode);
+    }];
+}
+
+- (NSInteger)deleteFileOrFolderFailureServerUrl:(NSString *)serverUrl response:(NSHTTPURLResponse *)response error:(NSError *)error message:(NSString **)message
+{
+    NSInteger errorCode = response.statusCode;
+    if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
+        errorCode = error.code;
+    
+    // Error
+    if (errorCode == 503)
+        *message = NSLocalizedStringFromTable(@"_server_error_retry_", @"Error", nil);
+    else
+        *message = [error.userInfo valueForKey:@"NSLocalizedDescription"];
+    
+    // Request trusted certificated
+    if ([error code] == NSURLErrorServerCertificateUntrusted)
+        [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
+    
+    // Activity
+    [[NCManageDatabase sharedInstance] addActivityClient:serverUrl fileID:@"" action:k_activityDebugActionDeleteFileFolder selector:@"" note:[error.userInfo valueForKey:@"NSLocalizedDescription"] type:k_activityTypeFailure verbose:k_activityVerboseHigh activeUrl:_activeUrl];
+    
+    return errorCode;
+}
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== Move =====
 #pragma --------------------------------------------------------------------------------------------

+ 31 - 0
iOSClient/Photos/CCPhotos.m

@@ -455,6 +455,37 @@
 #pragma mark ===== Delete =====
 #pragma--------------------------------------------------------------------------------------------
 
+/* TEST
+- (void)deleteFileOrFolder
+{
+    tableMetadata *metadata = [_selectedMetadatas objectAtIndex:0];
+    NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadata.directoryID];
+    
+    [_hud visibleHudTitle:@"c" mode:MBProgressHUDModeIndeterminate color:nil];
+    
+    [_oc deleteFileOrFolder:metadata.fileName serverUrl:serverUrl success:^{
+        
+        [_selectedMetadatas removeObjectAtIndex:0];
+        
+        if ([_selectedMetadatas count] > 0) {
+            
+            [self performSelectorOnMainThread:@selector(deleteFileOrFolder) withObject:nil waitUntilDone:0];
+            
+        } else {
+            [_hud hideHud];
+            [self editingModeNO];
+            [self reloadDatasourceFromSearch:NO];
+        }
+        
+    } failure:^(NSString *message, NSInteger errorCode) {
+        
+        [_hud hideHud];
+        [self editingModeNO];
+        [self reloadDatasourceFromSearch:NO];
+    }];
+}
+*/
+
 - (void)deleteFileOrFolderSuccessFailure:(CCMetadataNet *)metadataNet message:(NSString *)message errorCode:(NSInteger)errorCode
 {
     [_queueMetadatas removeObject:metadataNet.selector];