summaryrefslogtreecommitdiff
path: root/plugins/CloudFile/src
diff options
context:
space:
mode:
authoraunsane <aunsane@gmail.com>2017-04-23 15:37:35 +0300
committeraunsane <aunsane@gmail.com>2017-04-23 23:14:45 +0300
commit71a8d5202cc65a6e714956e78852a7b87ce51b35 (patch)
tree03b10b45c351ded65e495ce83120a9ebfa73ea50 /plugins/CloudFile/src
parent6aceb85c1362e96e74b24b8ae598d58aa882bc7a (diff)
CloudFile: Yandex: generate short donload link
Diffstat (limited to 'plugins/CloudFile/src')
-rw-r--r--plugins/CloudFile/src/Services/yandex_api.h11
-rw-r--r--plugins/CloudFile/src/Services/yandex_service.cpp12
2 files changed, 20 insertions, 3 deletions
diff --git a/plugins/CloudFile/src/Services/yandex_api.h b/plugins/CloudFile/src/Services/yandex_api.h
index 7548f6bd14..f70964bc78 100644
--- a/plugins/CloudFile/src/Services/yandex_api.h
+++ b/plugins/CloudFile/src/Services/yandex_api.h
@@ -79,6 +79,17 @@ namespace YandexAPI
AddUrlParameter("path=%s", ptrA(mir_urlEncode(path)));
}
};
+
+ class GetResourcesRequest : public HttpRequest
+ {
+ public:
+ GetResourcesRequest(const char *token, const char *path) :
+ HttpRequest(REQUEST_GET, YADISK_API)
+ {
+ AddOAuthHeader(token);
+ AddUrlParameter("path=%s", ptrA(mir_urlEncode(path)));
+ }
+ };
};
#endif //_YANDEXSERVICE_API_H_
diff --git a/plugins/CloudFile/src/Services/yandex_service.cpp b/plugins/CloudFile/src/Services/yandex_service.cpp
index 03f34a432e..d7b2e8b9e6 100644
--- a/plugins/CloudFile/src/Services/yandex_service.cpp
+++ b/plugins/CloudFile/src/Services/yandex_service.cpp
@@ -149,11 +149,17 @@ void CYandexService::CreateFolder(const char *path)
void CYandexService::CreateSharedLink(const char *path, char *url)
{
ptrA token(db_get_sa(NULL, GetModule(), "TokenSecret"));
- YandexAPI::PublishRequest request(token, path);
- NLHR_PTR response(request.Send(hConnection));
+ YandexAPI::PublishRequest publishRequest(token, path);
+ NLHR_PTR response(publishRequest.Send(hConnection));
+
+ GetJsonResponse(response);
+
+ YandexAPI::GetResourcesRequest resourcesRequest(token, path);
+ response = resourcesRequest.Send(hConnection);
JSONNode root = GetJsonResponse(response);
- JSONNode link = root.at("href");
+ JSONNode link = root.at("public_url");
+
mir_strcpy(url, link.as_string().c_str());
}