Skip to content

Commit d7c605a

Browse files
Merge pull request #514 from crypto-chassis/feat-websocket-order-entry
dev: add more details in AUTHORIZATION_STATUS event
2 parents 2938d83 + 658d36a commit d7c605a

6 files changed

Lines changed: 31 additions & 6 deletions

include/ccapi_cpp/ccapi_hmac.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#include <openssl/evp.h>
55
#include <openssl/hmac.h>
66
#include <stdint.h>
7-
#include <sstream>
87

98
#include <iomanip>
9+
#include <sstream>
1010

1111
namespace ccapi {
1212
class Hmac {

include/ccapi_cpp/service/ccapi_execution_management_service_bybit.h

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,15 +365,26 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService {
365365
if (document.HasMember("op")) {
366366
std::string op = document["op"].GetString();
367367
if (op == "auth") {
368+
message.setCorrelationIdList({subscription.getCorrelationId()});
368369
std::string retCode = document["retCode"].GetString();
369370
if (retCode == "0") {
370371
event.setType(Event::Type::AUTHORIZATION_STATUS);
371-
Message message;
372372
message.setType(Message::Type::AUTHORIZATION_SUCCESS);
373373
Element element;
374+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
375+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
374376
element.insert(CCAPI_INFO_MESSAGE, textMessage);
375377
message.setElementList({element});
376378
messageList.emplace_back(std::move(message));
379+
} else {
380+
event.setType(Event::Type::AUTHORIZATION_STATUS);
381+
message.setType(Message::Type::AUTHORIZATION_FAILURE);
382+
Element element;
383+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
384+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
385+
element.insert(CCAPI_ERROR_MESSAGE, textMessage);
386+
message.setElementList({element});
387+
messageList.emplace_back(std::move(message));
377388
}
378389
} else if (op == "order.create" || op == "order.cancel") {
379390
unsigned long wsRequestId = std::stoul(document["reqId"].GetString());
@@ -520,9 +531,10 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService {
520531
bool success = document["success"].GetBool();
521532
if (success) {
522533
event.setType(Event::Type::AUTHORIZATION_STATUS);
523-
Message message;
524534
message.setType(Message::Type::AUTHORIZATION_SUCCESS);
525535
Element element;
536+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
537+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
526538
element.insert(CCAPI_INFO_MESSAGE, textMessage);
527539
message.setElementList({element});
528540
messageList.emplace_back(std::move(message));
@@ -555,6 +567,15 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService {
555567
if (ec) {
556568
this->onError(Event::Type::SUBSCRIPTION_STATUS, Message::Type::SUBSCRIPTION_FAILURE, ec, "subscribe");
557569
}
570+
} else {
571+
event.setType(Event::Type::AUTHORIZATION_STATUS);
572+
message.setType(Message::Type::AUTHORIZATION_FAILURE);
573+
Element element;
574+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
575+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
576+
element.insert(CCAPI_ERROR_MESSAGE, textMessage);
577+
message.setElementList({element});
578+
messageList.emplace_back(std::move(message));
558579
}
559580
} else if (op == "subscribe") {
560581
bool success = document["success"].GetBool();

include/ccapi_cpp/service/ccapi_execution_management_service_cryptocom.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,13 +483,17 @@ class ExecutionManagementServiceCryptocom : public ExecutionManagementService {
483483
event.setType(Event::Type::AUTHORIZATION_STATUS);
484484
message.setType(Message::Type::AUTHORIZATION_FAILURE);
485485
Element element;
486+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
487+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
486488
element.insert(CCAPI_ERROR_MESSAGE, textMessage);
487489
message.setElementList({element});
488490
messageList.emplace_back(std::move(message));
489491
} else {
490492
event.setType(Event::Type::AUTHORIZATION_STATUS);
491493
message.setType(Message::Type::AUTHORIZATION_SUCCESS);
492494
Element element;
495+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
496+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
493497
element.insert(CCAPI_INFO_MESSAGE, textMessage);
494498
message.setElementList({element});
495499
messageList.emplace_back(std::move(message));

include/ccapi_cpp/service/ccapi_execution_management_service_okx.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,8 @@ class ExecutionManagementServiceOkx : public ExecutionManagementService {
393393
Message message;
394394
message.setType(Message::Type::AUTHORIZATION_SUCCESS);
395395
Element element;
396+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
397+
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
396398
element.insert(CCAPI_INFO_MESSAGE, textMessage);
397399
message.setElementList({element});
398400
std::vector<Message> messageList;

include/ccapi_cpp/service/ccapi_market_data_service_binance_base.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ class MarketDataServiceBinanceBase : public MarketDataService {
2222

2323
void onOpen(std::shared_ptr<WsConnection> wsConnectionPtr) override {
2424
CCAPI_LOGGER_FUNCTION_ENTER;
25-
auto now = UtilTime::now();
2625
Service::onOpen(wsConnectionPtr);
2726
this->startSubscribe(wsConnectionPtr);
2827
}

include/ccapi_cpp/service/ccapi_service.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1189,8 +1189,7 @@ class Service : public std::enable_shared_from_this<Service> {
11891189
message.setType(Message::Type::SESSION_CONNECTION_DOWN);
11901190
message.setCorrelationIdList(wsConnectionPtr->correlationIdList);
11911191
Element element;
1192-
auto& connectionId = wsConnectionPtr->id;
1193-
element.insert(CCAPI_CONNECTION_ID, connectionId);
1192+
element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id);
11941193
element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url);
11951194
message.setElementList({element});
11961195
event.setMessageList({message});

0 commit comments

Comments
 (0)