30 #include "../utils.hpp"
32 #include "rapidjson/include/rapidjson/document.h"
33 #include "rapidjson/include/rapidjson/rapidjson.h"
35 namespace kiteconnect {
38 namespace rj = rapidjson;
39 namespace kc = kiteconnect;
40 namespace utils = kc::internal::utils;
44 GENERATE_FLUENT_METHOD(
gttParams,
int, quantity, Quantity);
45 GENERATE_FLUENT_METHOD(
gttParams,
double, price, Price);
46 GENERATE_FLUENT_METHOD(
47 gttParams,
const string&, transactionType, TransactionType);
48 GENERATE_FLUENT_METHOD(
gttParams,
const string&, orderType, OrderType);
49 GENERATE_FLUENT_METHOD(
gttParams,
const string&, product, Product);
53 string transactionType;
61 explicit GTTCondition(
const rj::Value::Object& val) { parse(val); };
63 void parse(
const rj::Value::Object& val) {
64 exchange = utils::json::get<string>(val,
"exchange");
65 tradingsymbol = utils::json::get<string>(val,
"tradingsymbol");
66 lastPrice = utils::json::get<double>(val,
"last_price");
68 utils::json::get<std::vector<double>>(val,
"trigger_values");
71 double lastPrice = -1;
74 std::vector<double> triggerValues;
79 GENERATE_FLUENT_METHOD(
placeGttParams,
double, lastPrice, LastPrice);
80 GENERATE_FLUENT_METHOD(
82 GENERATE_FLUENT_METHOD(
placeGttParams,
const string&, symbol, Symbol);
83 GENERATE_FLUENT_METHOD(
placeGttParams,
const string&, exchange, Exchange);
85 triggerValues, TriggerValues);
86 GENERATE_FLUENT_METHOD(
placeGttParams,
const std::vector<gttParams>&,
87 gttParamsList, GttParamsList);
89 double lastPrice = -1;
93 std::vector<double> triggerValues;
94 std::vector<gttParams> gttParamsList;
101 GENERATE_FLUENT_METHOD(
103 GENERATE_FLUENT_METHOD(
modifyGttParams,
const string&, symbol, Symbol);
104 GENERATE_FLUENT_METHOD(
modifyGttParams,
const string&, exchange, Exchange);
106 triggerValues, TriggerValues);
108 gttParamsList, GttParamsList);
115 std::vector<double> triggerValues;
116 std::vector<gttParams> gttParamsList;
122 explicit GTT(
const rj::Value::Object& val) { parse(val); };
124 void parse(
const rj::Value::Object& val) {
125 ID = utils::json::get<int>(val,
"id");
126 userID = utils::json::get<string>(val,
"user_id");
127 type = utils::json::get<string>(val,
"type");
128 createdAt = utils::json::get<string>(val,
"created_at");
129 updatedAt = utils::json::get<string>(val,
"updated_at");
130 expiresAt = utils::json::get<string>(val,
"expires_at");
131 status = utils::json::get<string>(val,
"status");
132 condition = utils::json::get<utils::json::JsonObject, GTTCondition>(
135 rj::Value ordersBuffer(rj::kArrayType);
136 utils::json::get<utils::json::JsonArray>(val, ordersBuffer,
"orders");
137 for (
auto& v : ordersBuffer.GetArray()) {
138 orders.emplace_back(v.GetObject());
150 std::vector<order> orders;