summaryrefslogtreecommitdiff
path: root/plugins/CloudFile/src/Services
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CloudFile/src/Services')
-rw-r--r--plugins/CloudFile/src/Services/yandex_api.h2
-rw-r--r--plugins/CloudFile/src/Services/yandex_service.cpp12
2 files changed, 12 insertions, 2 deletions
diff --git a/plugins/CloudFile/src/Services/yandex_api.h b/plugins/CloudFile/src/Services/yandex_api.h
index 91db0290a1..ac99cb0177 100644
--- a/plugins/CloudFile/src/Services/yandex_api.h
+++ b/plugins/CloudFile/src/Services/yandex_api.h
@@ -99,7 +99,7 @@ namespace YandexAPI
HttpRequest(REQUEST_PUT, YADISK_API)
{
AddOAuthHeader(token);
- AddUrlParameter("path=app:%s", ptrA(mir_urlEncode(path)));
+ AddUrlParameterWithEncode("path", "app:%s", path);
AddUrlParameter("fields=href");
}
};
diff --git a/plugins/CloudFile/src/Services/yandex_service.cpp b/plugins/CloudFile/src/Services/yandex_service.cpp
index ff99604aa4..1f87c14da5 100644
--- a/plugins/CloudFile/src/Services/yandex_service.cpp
+++ b/plugins/CloudFile/src/Services/yandex_service.cpp
@@ -200,7 +200,17 @@ void CYandexService::CreateFolder(const std::string &path)
YandexAPI::CreateFolderRequest request(token, path.c_str());
NLHR_PTR response(request.Send(m_hConnection));
- GetJsonResponse(response);
+ if (HTTP_CODE_SUCCESS(response->resultCode)) {
+ GetJsonResponse(response);
+ return;
+ }
+
+ // forder exists on server
+ if (response->resultCode == HTTP_CODE_CONFLICT) {
+ return;
+ }
+
+ HttpResponseToError(response);
}
auto CYandexService::CreateSharedLink(const std::string &path)