Marino Faggiana 7 жил өмнө
parent
commit
fde4acca50

+ 1 - 0
iOSClient/Networking/OCNetworking.h

@@ -48,6 +48,7 @@
 - (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;
 - (void)createFolder:(NSString *)fileName serverUrl:(NSString *)serverUrl account:(NSString *)account success:(void(^)(NSString *fileID, NSDate *date))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
+- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure;
 
 @end
 

+ 40 - 0
iOSClient/Networking/OCNetworking.m

@@ -1120,6 +1120,46 @@
     }];
 }
 
+- (void)moveFileOrFolder:(NSString *)fileName fileNameTo:(NSString *)fileNameTo success:(void (^)(void))success failure:(void (^)(NSString *message, NSInteger errorCode))failure
+{
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    
+    [communication setCredentialsWithUser:_activeUser andUserID:_activeUserID andPassword:_activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
+    
+    [communication moveFileOrFolder:fileName toDestiny:fileNameTo onCommunication:communication withForbiddenCharactersSupported:YES successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+
+        success();
+        
+    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        NSInteger errorCode = response.statusCode;
+        if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
+            errorCode = error.code;
+        
+        NSString *message = [CCError manageErrorOC:response.statusCode error:error];
+        
+        failure(message, error.code);
+        
+    } errorBeforeRequest:^(NSError *error) {
+        
+        NSString *message;
+        
+        if (error.code == OCErrorMovingTheDestinyAndOriginAreTheSame) {
+            message = NSLocalizedStringFromTable(@"_error_folder_destiny_is_the_same_", @"Error", nil);
+        } else if (error.code == OCErrorMovingFolderInsideHimself) {
+            message = NSLocalizedStringFromTable(@"_error_folder_destiny_is_the_same_", @"Error", nil);
+        } else if (error.code == OCErrorMovingDestinyNameHaveForbiddenCharacters) {
+            message = NSLocalizedStringFromTable(@"_forbidden_characters_from_server_", @"Error", nil);
+        } else {
+            message = NSLocalizedStringFromTable(@"_unknow_response_server_", @"Error", nil);
+        }
+        
+        failure(message, error.code);
+    }];
+}
+
+
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark ===== ReadFile =====
 #pragma --------------------------------------------------------------------------------------------