mirror of
https://github.com/abraunegg/onedrive
synced 2024-05-15 20:26:53 +02:00
added updateById
This commit is contained in:
parent
3357a013f7
commit
60a5b799f9
|
@ -161,7 +161,7 @@ final class OneDriveApi
|
|||
}
|
||||
|
||||
// https://dev.onedrive.com/items/upload_put.htm
|
||||
auto simpleUpload(string localPath, const(char)[] remotePath, const(char)[] eTag = null)
|
||||
JSONValue simpleUpload(string localPath, const(char)[] remotePath, const(char)[] eTag = null)
|
||||
{
|
||||
checkAccessTokenExpired();
|
||||
char[] url = itemByPathUrl ~ remotePath ~ ":/content";
|
||||
|
@ -178,6 +178,20 @@ final class OneDriveApi
|
|||
return parseJSON(content);
|
||||
}
|
||||
|
||||
// https://dev.onedrive.com/items/update.htm
|
||||
JSONValue updateById(const(char)[] id, JSONValue data, const(char)[] eTag = null)
|
||||
{
|
||||
checkAccessTokenExpired();
|
||||
char[] url = itemByIdUrl ~ id;
|
||||
if (eTag) http.addRequestHeader("If-Match", eTag);
|
||||
http.addRequestHeader("Content-Type", "application/json");
|
||||
auto result = patch(url, data.toString());
|
||||
http.clearRequestHeaders();
|
||||
// remove the headers
|
||||
setAccessToken(accessToken);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void redeemToken(const(char)[] authCode)
|
||||
{
|
||||
string postData = "client_id=" ~ clientId ~ "&redirect_url=" ~ redirectUrl ~ "&client_secret=" ~ clientSecret;
|
||||
|
@ -215,12 +229,17 @@ final class OneDriveApi
|
|||
newToken();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private auto get(const(char)[] url)
|
||||
{
|
||||
return parseJSON(.get(url, http));
|
||||
}
|
||||
|
||||
private auto patch(T)(const(char)[] url, const(T)[] patchData)
|
||||
{
|
||||
return parseJSON(.patch(url, patchData, http));
|
||||
}
|
||||
|
||||
private auto post(T)(const(char)[] url, const(T)[] postData)
|
||||
{
|
||||
return parseJSON(.post(url, postData, http));
|
||||
|
|
Loading…
Reference in a new issue