aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud/box
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-13 15:48:55 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit19ae61dffc2541e855c1376a52e461f199af2f99 (patch)
treedfafbce59fb19a6e8ffcfe512a8deeb2df09484b /backends/cloud/box
parent34ee1d29d5597e4914f5e06c7770137f4dd856d7 (diff)
downloadscummvm-rg350-19ae61dffc2541e855c1376a52e461f199af2f99.tar.gz
scummvm-rg350-19ae61dffc2541e855c1376a52e461f199af2f99.tar.bz2
scummvm-rg350-19ae61dffc2541e855c1376a52e461f199af2f99.zip
CLOUD: Add IdDownloadRequest and IdStreamFileRequest
Used for downloading files in Box.
Diffstat (limited to 'backends/cloud/box')
-rw-r--r--backends/cloud/box/boxstorage.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/backends/cloud/box/boxstorage.cpp b/backends/cloud/box/boxstorage.cpp
index 5bbe377163..1fbe2f17aa 100644
--- a/backends/cloud/box/boxstorage.cpp
+++ b/backends/cloud/box/boxstorage.cpp
@@ -249,15 +249,18 @@ Networking::Request *BoxStorage::upload(Common::String path, Common::SeekableRea
return nullptr; //TODO
}
-Networking::Request *BoxStorage::streamFileById(Common::String path, Networking::NetworkReadStreamCallback outerCallback, Networking::ErrorCallback errorCallback) {
- /*
- Common::String url = "https://api.Box.com/v1.0/drive/special/approot:/" + ConnMan.urlEncode(path);
- Networking::JsonCallback innerCallback = new Common::CallbackBridge<BoxStorage, Networking::NetworkReadStreamResponse, Networking::JsonResponse>(this, &BoxStorage::fileInfoCallback, outerCallback);
- Networking::CurlJsonRequest *request = new BoxTokenRefresher(this, innerCallback, errorCallback, url.c_str());
- request->addHeader("Authorization: Bearer " + _token);
- return addRequest(request);
- */
- return nullptr; //TODO
+Networking::Request *BoxStorage::streamFileById(Common::String id, Networking::NetworkReadStreamCallback callback, Networking::ErrorCallback errorCallback) {
+ if (callback) {
+ Common::String url = "https://api.box.com/2.0/files/" + id + "/content";
+ debug("%s", url.c_str());
+ Common::String header = "Authorization: Bearer " + _token;
+ curl_slist *headersList = curl_slist_append(nullptr, header.c_str());
+ Networking::NetworkReadStream *stream = new Networking::NetworkReadStream(url.c_str(), headersList, "");
+ (*callback)(Networking::NetworkReadStreamResponse(nullptr, stream));
+ }
+ delete callback;
+ delete errorCallback;
+ return nullptr;
}
void BoxStorage::fileDownloaded(BoolResponse response) {