|
@@ -624,74 +624,6 @@
|
|
|
}];
|
|
|
}
|
|
|
|
|
|
-- (void)createFolderWithAccount:(NSString *)account serverUrl:(NSString *)serverUrl fileName:(NSString *)fileName completion:(void(^)(NSString *account, NSString *ocId, NSDate *date, NSString *message, NSInteger errorCode))completion
|
|
|
-{
|
|
|
- tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountWithPredicate:[NSPredicate predicateWithFormat:@"account == %@", account]];
|
|
|
- if (tableAccount == nil) {
|
|
|
- completion(account, nil, nil, NSLocalizedString(@"_error_user_not_available_", nil), k_CCErrorUserNotAvailble);
|
|
|
- } else if ([CCUtility getPassword:account].length == 0) {
|
|
|
- completion(account, nil, nil, NSLocalizedString(@"_bad_username_password_", nil), kOCErrorServerUnauthorized);
|
|
|
- } else if ([CCUtility getCertificateError:account]) {
|
|
|
- completion(account, nil, nil, NSLocalizedString(@"_ssl_certificate_untrusted_", nil), NSURLErrorServerCertificateUntrusted);
|
|
|
- }
|
|
|
-
|
|
|
- NSString *path = [NSString stringWithFormat:@"%@/%@", serverUrl, fileName];
|
|
|
- NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
|
|
|
- NSString *autoUploadDirectory = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:tableAccount.url];
|
|
|
-
|
|
|
- OCCommunication *communication = [OCNetworking sharedManager].sharedOCCommunication;
|
|
|
-
|
|
|
- [communication setCredentialsWithUser:tableAccount.user andUserID:tableAccount.userID andPassword:[CCUtility getPassword:account]];
|
|
|
- [communication setUserAgent:[CCUtility getUserAgent]];
|
|
|
- [communication createFolder:path onCommunication:communication withForbiddenCharactersSupported:YES successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
|
|
|
-
|
|
|
- NSDictionary *fields = [response allHeaderFields];
|
|
|
-
|
|
|
- NSString *ocId = [CCUtility removeForbiddenCharactersFileSystem:[fields objectForKey:@"OC-FileId"]];
|
|
|
- NSDate *date = [CCUtility dateEnUsPosixFromCloud:[fields objectForKey:@"Date"]];
|
|
|
-
|
|
|
- completion(account, ocId, date, nil, 0);
|
|
|
-
|
|
|
- } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
|
|
|
-
|
|
|
- NSString *message;
|
|
|
-
|
|
|
- if (([fileName isEqualToString:autoUploadFileName] && [serverUrl isEqualToString:autoUploadDirectory]))
|
|
|
- message = nil;
|
|
|
- else
|
|
|
- message = [CCError manageErrorOC:response.statusCode error:error];
|
|
|
-
|
|
|
- NSInteger errorCode = response.statusCode;
|
|
|
-
|
|
|
- if (errorCode == 0 || (errorCode >= 200 && errorCode < 300))
|
|
|
- errorCode = error.code;
|
|
|
-
|
|
|
- // Server Unauthorized
|
|
|
- if (errorCode == kOCErrorServerUnauthorized || errorCode == kOCErrorServerForbidden) {
|
|
|
- [[OCNetworking sharedManager] checkRemoteUser:account function:@"create folder" errorCode:errorCode];
|
|
|
- } else if (errorCode == NSURLErrorServerCertificateUntrusted) {
|
|
|
- [CCUtility setCertificateError:account error:YES];
|
|
|
- }
|
|
|
-
|
|
|
- completion(account, nil, nil, message, errorCode);
|
|
|
-
|
|
|
- } errorBeforeRequest:^(NSError *error) {
|
|
|
-
|
|
|
- NSString *message;
|
|
|
-
|
|
|
- if (([fileName isEqualToString:autoUploadFileName] && [serverUrl isEqualToString:autoUploadDirectory]))
|
|
|
- message = nil;
|
|
|
- else {
|
|
|
- if (error.code == OCErrorForbidenCharacters)
|
|
|
- message = NSLocalizedString(@"_forbidden_characters_from_server_", nil);
|
|
|
- else
|
|
|
- message = NSLocalizedString(@"_unknow_response_server_", nil);
|
|
|
- }
|
|
|
-
|
|
|
- completion(account, nil, nil, message, error.code);
|
|
|
- }];
|
|
|
-}
|
|
|
-
|
|
|
#pragma --------------------------------------------------------------------------------------------
|
|
|
#pragma mark ===== Share =====
|
|
|
#pragma --------------------------------------------------------------------------------------------
|