From 6bb961489e3cebf19d32c83df5126fe4ea73e37a Mon Sep 17 00:00:00 2001 From: aunsane Date: Thu, 26 Apr 2018 13:20:48 +0300 Subject: CloudFile: fix for #1298 --- plugins/CloudFile/src/Services/yandex_api.h | 2 +- plugins/CloudFile/src/Services/yandex_service.cpp | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'plugins/CloudFile/src/Services') 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) -- cgit v1.2.3