27 #pragma clang diagnostic ignored "-Wundefined-inline"
29 #include "PicoSHA2/picosha2.h"
31 #include "../kite.hpp"
32 #include "../utils.hpp"
34 namespace kiteconnect {
36 inline kite::kite(
string apikey): key(std::move(apikey)), client(root.c_str()) {
37 client.set_default_headers({ {
"X-Kite-Version", version } });
45 return FMT(loginUrlFmt,
"api_key"_a = key);
50 authorization = FMT(
"token {0}:{1}", key, token);
56 const string& requestToken,
const string& apiSecret) {
57 return callApi<userSession, utils::json::JsonObject>(
"api.token",
60 {
"request_token", requestToken },
62 picosha2::hash256_hex_string(key + requestToken + apiSecret) },
67 utils::http::response res =
68 sendReq(endpoints.at(
"api.token.invalidate"), {}, { key, token });
69 return static_cast<bool>(res);
kite(string apikey)
Construct a new kite object.
Definition: api.hpp:36
string getApiKey() const
Get current session's API key.
Definition: api.hpp:42
utils::http::response sendReq(const utils::http::endpoint &endpoint, const utils::http::Params &body, const utils::FmtArgs &fmtArgs)
send a http request with the context used by kite
Definition: internal.hpp:61
string getAccessToken() const
Get access token set for current session.
Definition: api.hpp:53
void setApiKey(const string &arg)
Set the API key for current session.
Definition: api.hpp:40
userSession generateSession(const string &requestToken, const string &apiSecret)
Generate an user session. Use this method to generate an access token.
Definition: api.hpp:55
string loginURL() const
Get the login URL to which the user should be redirected to initiate the login flow.
Definition: api.hpp:44
bool invalidateSession()
This method invalidates the access token and destroys current session.
Definition: api.hpp:66
Represents information of a user session.
Definition: user.hpp:100
void setAccessToken(const string &arg)
Set the access token current session.
Definition: api.hpp:48