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;