From 658d36a00472f58e577a58d9628336406c34b817 Mon Sep 17 00:00:00 2001 From: ubuntu <> Date: Thu, 29 May 2025 19:33:33 +0000 Subject: [PATCH] dev: add more details in AUTHORIZATION_STATUS event --- include/ccapi_cpp/ccapi_hmac.h | 2 +- ...ccapi_execution_management_service_bybit.h | 25 +++++++++++++++++-- ...i_execution_management_service_cryptocom.h | 4 +++ .../ccapi_execution_management_service_okx.h | 2 ++ .../ccapi_market_data_service_binance_base.h | 1 - include/ccapi_cpp/service/ccapi_service.h | 3 +-- 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/include/ccapi_cpp/ccapi_hmac.h b/include/ccapi_cpp/ccapi_hmac.h index f58c3e36..066dbd9c 100644 --- a/include/ccapi_cpp/ccapi_hmac.h +++ b/include/ccapi_cpp/ccapi_hmac.h @@ -4,9 +4,9 @@ #include #include #include -#include #include +#include namespace ccapi { class Hmac { diff --git a/include/ccapi_cpp/service/ccapi_execution_management_service_bybit.h b/include/ccapi_cpp/service/ccapi_execution_management_service_bybit.h index 81ae7205..6f28275e 100644 --- a/include/ccapi_cpp/service/ccapi_execution_management_service_bybit.h +++ b/include/ccapi_cpp/service/ccapi_execution_management_service_bybit.h @@ -365,15 +365,26 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService { if (document.HasMember("op")) { std::string op = document["op"].GetString(); if (op == "auth") { + message.setCorrelationIdList({subscription.getCorrelationId()}); std::string retCode = document["retCode"].GetString(); if (retCode == "0") { event.setType(Event::Type::AUTHORIZATION_STATUS); - Message message; message.setType(Message::Type::AUTHORIZATION_SUCCESS); Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); element.insert(CCAPI_INFO_MESSAGE, textMessage); message.setElementList({element}); messageList.emplace_back(std::move(message)); + } else { + event.setType(Event::Type::AUTHORIZATION_STATUS); + message.setType(Message::Type::AUTHORIZATION_FAILURE); + Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); + element.insert(CCAPI_ERROR_MESSAGE, textMessage); + message.setElementList({element}); + messageList.emplace_back(std::move(message)); } } else if (op == "order.create" || op == "order.cancel") { unsigned long wsRequestId = std::stoul(document["reqId"].GetString()); @@ -520,9 +531,10 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService { bool success = document["success"].GetBool(); if (success) { event.setType(Event::Type::AUTHORIZATION_STATUS); - Message message; message.setType(Message::Type::AUTHORIZATION_SUCCESS); Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); element.insert(CCAPI_INFO_MESSAGE, textMessage); message.setElementList({element}); messageList.emplace_back(std::move(message)); @@ -555,6 +567,15 @@ class ExecutionManagementServiceBybit : public ExecutionManagementService { if (ec) { this->onError(Event::Type::SUBSCRIPTION_STATUS, Message::Type::SUBSCRIPTION_FAILURE, ec, "subscribe"); } + } else { + event.setType(Event::Type::AUTHORIZATION_STATUS); + message.setType(Message::Type::AUTHORIZATION_FAILURE); + Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); + element.insert(CCAPI_ERROR_MESSAGE, textMessage); + message.setElementList({element}); + messageList.emplace_back(std::move(message)); } } else if (op == "subscribe") { bool success = document["success"].GetBool(); diff --git a/include/ccapi_cpp/service/ccapi_execution_management_service_cryptocom.h b/include/ccapi_cpp/service/ccapi_execution_management_service_cryptocom.h index 54b995d7..c5511390 100644 --- a/include/ccapi_cpp/service/ccapi_execution_management_service_cryptocom.h +++ b/include/ccapi_cpp/service/ccapi_execution_management_service_cryptocom.h @@ -483,6 +483,8 @@ class ExecutionManagementServiceCryptocom : public ExecutionManagementService { event.setType(Event::Type::AUTHORIZATION_STATUS); message.setType(Message::Type::AUTHORIZATION_FAILURE); Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); element.insert(CCAPI_ERROR_MESSAGE, textMessage); message.setElementList({element}); messageList.emplace_back(std::move(message)); @@ -490,6 +492,8 @@ class ExecutionManagementServiceCryptocom : public ExecutionManagementService { event.setType(Event::Type::AUTHORIZATION_STATUS); message.setType(Message::Type::AUTHORIZATION_SUCCESS); Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); element.insert(CCAPI_INFO_MESSAGE, textMessage); message.setElementList({element}); messageList.emplace_back(std::move(message)); diff --git a/include/ccapi_cpp/service/ccapi_execution_management_service_okx.h b/include/ccapi_cpp/service/ccapi_execution_management_service_okx.h index e1c1a108..f491967f 100644 --- a/include/ccapi_cpp/service/ccapi_execution_management_service_okx.h +++ b/include/ccapi_cpp/service/ccapi_execution_management_service_okx.h @@ -393,6 +393,8 @@ class ExecutionManagementServiceOkx : public ExecutionManagementService { Message message; message.setType(Message::Type::AUTHORIZATION_SUCCESS); Element element; + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); + element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); element.insert(CCAPI_INFO_MESSAGE, textMessage); message.setElementList({element}); std::vector messageList; diff --git a/include/ccapi_cpp/service/ccapi_market_data_service_binance_base.h b/include/ccapi_cpp/service/ccapi_market_data_service_binance_base.h index 3957669e..146ec1de 100644 --- a/include/ccapi_cpp/service/ccapi_market_data_service_binance_base.h +++ b/include/ccapi_cpp/service/ccapi_market_data_service_binance_base.h @@ -22,7 +22,6 @@ class MarketDataServiceBinanceBase : public MarketDataService { void onOpen(std::shared_ptr wsConnectionPtr) override { CCAPI_LOGGER_FUNCTION_ENTER; - auto now = UtilTime::now(); Service::onOpen(wsConnectionPtr); this->startSubscribe(wsConnectionPtr); } diff --git a/include/ccapi_cpp/service/ccapi_service.h b/include/ccapi_cpp/service/ccapi_service.h index f6ed34aa..92891483 100644 --- a/include/ccapi_cpp/service/ccapi_service.h +++ b/include/ccapi_cpp/service/ccapi_service.h @@ -1189,8 +1189,7 @@ class Service : public std::enable_shared_from_this { message.setType(Message::Type::SESSION_CONNECTION_DOWN); message.setCorrelationIdList(wsConnectionPtr->correlationIdList); Element element; - auto& connectionId = wsConnectionPtr->id; - element.insert(CCAPI_CONNECTION_ID, connectionId); + element.insert(CCAPI_CONNECTION_ID, wsConnectionPtr->id); element.insert(CCAPI_CONNECTION_URL, wsConnectionPtr->url); message.setElementList({element}); event.setMessageList({message});