from omega_client.messaging.message_factory import account_balances_report_py, \
account_data_report_py, authorization_grant_py, \
completed_orders_report_py, exchange_properties_report_py, \
execution_report_py, logoff_ack_py, logon_ack_py, open_positions_report_py, \
system_message_py, omega_test_message_py, working_orders_report_py
def _heartbeat_message_unpacker(response):
return response.clientID, response.senderCompID, response.requestID
def _test_message_unpacker(response):
return (
omega_test_message_py(response.body.test),
response.clientID,
response.senderCompID,
response.requestID
)
def _server_time_message_unpacker(response):
return (
response.body.serverTime,
response.clientID,
response.senderCompID,
response.requestID
)
def _system_message_unpacker(response):
return (
system_message_py(response.body.system),
response.clientID,
response.senderCompID,
response.requestID
)
def _logon_ack_message_unpacker(response):
return (
logon_ack_py(response.body.logonAck),
response.clientID,
response.senderCompID,
response.requestID
)
def _logoff_ack_message_unpacker(response):
return (
logoff_ack_py(response.body.logoffAck),
response.clientID,
response.senderCompID,
response.requestID
)
def _execution_report_message_unpacker(response):
return (
execution_report_py(response.body.executionReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _account_data_report_message_unpacker(response):
return (
account_data_report_py(response.body.accountDataReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _working_orders_report_message_unpacker(response):
return (
working_orders_report_py(response.body.workingOrdersReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _account_balances_report_message_unpacker(response):
return (
account_balances_report_py(response.body.accountBalancesReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _open_positions_report_message_unpacker(response):
return (
open_positions_report_py(response.body.openPositionsReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _completed_orders_report_message_unpacker(response):
return (
completed_orders_report_py(response.body.completedOrdersReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _exchange_properties_report_message_unpacker(response):
return (
exchange_properties_report_py(
response.body.exchangePropertiesReport),
response.clientID,
response.senderCompID,
response.requestID
)
def _authorization_grant_message_unpacker(response):
return (
authorization_grant_py(response.body.authorizationGrant),
response.clientID,
response.senderCompID,
response.requestID
)
_omega_response_unpacker = {
'heartbeat': _heartbeat_message_unpacker,
'test': _test_message_unpacker,
'serverTime': _server_time_message_unpacker,
'system': _system_message_unpacker,
'logonAck': _logon_ack_message_unpacker,
'logoffAck': _logoff_ack_message_unpacker,
'executionReport': _execution_report_message_unpacker,
'accountDataReport': _account_data_report_message_unpacker,
'workingOrdersReport': _working_orders_report_message_unpacker,
'accountBalancesReport': _account_balances_report_message_unpacker,
'openPositionsReport': _open_positions_report_message_unpacker,
'completedOrdersReport': _completed_orders_report_message_unpacker,
'exchangePropertiesReport': _exchange_properties_report_message_unpacker,
'authorizationGrant': _authorization_grant_message_unpacker,
}
[docs]def unpack_response(response_type, response):
return _omega_response_unpacker[response_type](response)