aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud/onedrive
AgeCommit message (Collapse)Author
2016-08-24CLOUD: Add OneDriveListDirectoryRequestAlexander Tkachev
Works as charm.
2016-08-24CLOUD: Fix "global destructor" warningAlexander Tkachev
Plain char * is used instead of Common::String in DropboxStorage and OneDriveStorage's KEY and SECRET.
2016-08-24CLOUD: Simplify OneDriveTokenRefresherAlexander Tkachev
It now just extends CurlJsonRequest, not wraps one.
2016-08-24CLOUD: Fix OneDriveTokenRefresherAlexander Tkachev
Failed to update token in header when "Bearer" was used instead of "bearer".
2016-08-24CLOUD: Add access to CurlRequest's StreamAlexander Tkachev
One can access CurlRequest's NetworkReadStream in order to find out HTTP response code or some other Stream-related data. OneDriveTokenRefresher uses it to print some info on that 404 error I'm trying to troubleshoot.
2016-08-24CLOUD: Refactor ConnectionManager/Requests systemAlexander Tkachev
ConnectionManager now storages Request * (not generates ids for it), Requests have control on their RequestState, RequestIdPair is now called Response and storages Request * with some response together. All related classes are changed to use it in more clean and understandable way. Request, RequestState and Response are carefully commented/documented.
2016-08-24CLOUD: Make OneDriveStorage::download() work fineAlexander Tkachev
Well, it takes two API calls instead of one now, but there are no problems with expired token because of it. This commit changes Storage::streamFile() to pass NetworkReadStream * through callback.
2016-08-24CLOUD: Add OneDriveStorage::download()Alexander Tkachev
Doesn't work when token is invalid, though.
2016-08-24CLOUD: Add OneDriveTokenRefresherAlexander Tkachev
OneDriveTokenRefresher is a CurlJsonRequest replacement for OneDriveStorage methods. It behaves very similarly, but checks received JSON before passing it to user. If it contains "error" key, it attempts to refresh the token through OneDriveStorage, and then restarts the original request, so user won't notice that there ever was an error.
2016-08-24CLOUD: Fix CurlJsonRequest to use JsonCallbackAlexander Tkachev
Type safety first.
2016-08-24CLOUD: Add RequestIdPair structAlexander Tkachev
Can be used with Callback<T> (means it's still type safe). It's used to pass not only Request id to user's callback, but also a value user wanted. void *data field is removed from RequestInfo.
2016-08-24CLOUD: Add Requests idAlexander Tkachev
(Upgrading ConnectionManager step by step.)
2016-08-24CLOUD: Add OneDrive refresh_token supportAlexander Tkachev
It might be not that easy to restart the request after new token received, though.
2016-08-24CLOUD: Add OneDrive Storage stubAlexander Tkachev
Knows how to OAuth already. This commit also adds CloudManager::addStorage(), so OneDriveStorage can add newly created Storage and CloudManager can save it in the configuration file.