31 #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;
45 GENERATE_FLUENT_METHOD(
49 GENERATE_FLUENT_METHOD(
52 GENERATE_FLUENT_METHOD(
56 GENERATE_FLUENT_METHOD(
61 GENERATE_FLUENT_METHOD(
64 GENERATE_FLUENT_METHOD(
70 std::optional<int> disclosedQuantity;
71 std::optional<int> validityTtl;
72 std::optional<int> icebergLegs;
73 std::optional<int> icebergQuantity;
74 std::optional<double> price;
75 std::optional<double> triggerPrice;
76 std::optional<double> squareOff;
77 std::optional<double> stopLoss;
78 std::optional<double> trailingStopLoss;
82 string transactionType;
85 std::optional<string> validity;
86 std::optional<string> tag;
92 GENERATE_FLUENT_METHOD(
95 GENERATE_FLUENT_METHOD(
98 GENERATE_FLUENT_METHOD(
100 GENERATE_FLUENT_METHOD(
103 GENERATE_FLUENT_METHOD(
106 std::optional<int> quantity;
107 std::optional<int> disclosedQuantity;
108 std::optional<double> price;
109 std::optional<double> triggerPrice;
112 std::optional<string> parentOrderId;
113 std::optional<string> orderType;
114 std::optional<string> validity;
120 explicit order(
const rj::Value::Object& val) { parse(val); };
122 void parse(
const rj::Value::Object& val) {
123 accountID = utils::json::get<string>(val,
"account_id");
124 placedBy = utils::json::get<string>(val,
"placed_by");
125 orderID = utils::json::get<string>(val,
"order_id");
126 exchangeOrderID = utils::json::get<string>(val,
"exchange_order_id");
127 parentOrderID = utils::json::get<string>(val,
"parent_order_id");
128 status = utils::json::get<string>(val,
"status");
129 statusMessage = utils::json::get<string>(val,
"status_message");
130 orderTimestamp = utils::json::get<string>(val,
"order_timestamp");
131 exchangeUpdateTimestamp =
132 utils::json::get<string>(val,
"exchange_update_timestamp");
133 exchangeTimestamp = utils::json::get<string>(val,
"exchange_timestamp");
134 rejectedBy = utils::json::get<string>(val,
"rejected_by");
135 variety = utils::json::get<string>(val,
"variety");
136 exchange = utils::json::get<string>(val,
"exchange");
137 tradingsymbol = utils::json::get<string>(val,
"tradingsymbol");
138 instrumentToken = utils::json::get<uint32_t>(val,
"instrument_token");
139 orderType = utils::json::get<string>(val,
"order_type");
140 transactionType = utils::json::get<string>(val,
"transaction_type");
141 validity = utils::json::get<string>(val,
"validity");
142 product = utils::json::get<string>(val,
"product");
143 quantity = utils::json::get<int>(val,
"quantity");
144 disclosedQuantity = utils::json::get<int>(val,
"disclosed_quantity");
145 validityTtl = utils::json::get<int>(val,
"validity_ttl");
146 price = utils::json::get<double>(val,
"price");
147 triggerPrice = utils::json::get<double>(val,
"trigger_price");
148 averagePrice = utils::json::get<double>(val,
"average_price");
149 filledQuantity = utils::json::get<int>(val,
"filled_quantity");
150 pendingQuantity = utils::json::get<int>(val,
"pending_quantity");
151 cancelledQuantity = utils::json::get<int>(val,
"cancelled_quantity");
154 uint32_t instrumentToken = 0;
156 int disclosedQuantity = -1;
157 int filledQuantity = -1;
158 int pendingQuantity = -1;
159 int cancelledQuantity = -1;
160 int validityTtl = -1;
162 double triggerPrice = -1.0;
163 double averagePrice = -1.0;
167 string exchangeOrderID;
168 string parentOrderID;
170 string statusMessage;
171 string orderTimestamp;
172 string exchangeUpdateTimestamp;
173 string exchangeTimestamp;
177 string tradingsymbol;
179 string transactionType;
187 explicit trade(
const rj::Value::Object& val) { parse(val); };
189 void parse(
const rj::Value::Object& val) {
190 averagePrice = utils::json::get<double>(val,
"average_price");
191 quantity = utils::json::get<double>(val,
"quantity");
192 tradeID = utils::json::get<string>(val,
"trade_id");
193 product = utils::json::get<string>(val,
"product");
194 fillTimestamp = utils::json::get<string>(val,
"fill_timestamp");
195 exchangeTimestamp = utils::json::get<string>(val,
"exchange_timestamp");
196 exchangeOrderID = utils::json::get<string>(val,
"exchange_order_id");
197 orderID = utils::json::get<string>(val,
"order_id");
198 transactionType = utils::json::get<string>(val,
"transaction_type");
199 tradingSymbol = utils::json::get<string>(val,
"tradingsymbol");
200 exchange = utils::json::get<string>(val,
"exchange");
201 instrumentToken = utils::json::get<uint32_t>(val,
"instrument_token");
204 uint32_t instrumentToken = 0;
205 double averagePrice = -1.0;
206 double quantity = -1.0;
209 string fillTimestamp;
210 string exchangeTimestamp;
211 string exchangeOrderID;
213 string transactionType;
214 string tradingSymbol;