Browse Source

gotify trade sink

master
Denis Tereshkin 2 years ago
parent
commit
7b2366d664
  1. 3
      src/Config.hs
  2. 11
      src/Main.hs

3
src/Config.hs

@ -33,7 +33,8 @@ data TransaqConnectorConfig = TransaqConnectorConfig {
transaqLogPath :: FilePath, transaqLogPath :: FilePath,
transaqLogLevel :: Int, transaqLogLevel :: Int,
tradesinkDashboard :: T.Text, tradesinkDashboard :: T.Text,
mqttUri :: T.Text, gotifyUri :: T.Text,
gotifyToken :: T.Text,
allTradesSubscriptions :: [SubscriptionConfig], allTradesSubscriptions :: [SubscriptionConfig],
quotationsSubscriptions :: [SubscriptionConfig], quotationsSubscriptions :: [SubscriptionConfig],
quotesSubscriptions :: [SubscriptionConfig] quotesSubscriptions :: [SubscriptionConfig]

11
src/Main.hs

@ -6,7 +6,7 @@ import ATrade (libatrade_gitrev,
import ATrade.Broker.Protocol (NotificationSqnum (NotificationSqnum)) import ATrade.Broker.Protocol (NotificationSqnum (NotificationSqnum))
import ATrade.Broker.Server (startBrokerServer, import ATrade.Broker.Server (startBrokerServer,
stopBrokerServer) stopBrokerServer)
import ATrade.Broker.TradeSinks.MQTTTradeSink (withMQTTTradeSink) import ATrade.Broker.TradeSinks.GotifyTradeSink (withGotifyTradeSink)
import ATrade.Broker.TradeSinks.ZMQTradeSink (withZMQTradeSink) import ATrade.Broker.TradeSinks.ZMQTradeSink (withZMQTradeSink)
import ATrade.Logging (Message (..), Severity (Debug, Error, Info, Trace, Warning), import ATrade.Logging (Message (..), Severity (Debug, Error, Info, Trace, Warning),
fmtMessage, logWith) fmtMessage, logWith)
@ -71,9 +71,7 @@ main = do
defaultServerSecurityParams) defaultServerSecurityParams)
stopQuoteSourceServer $ \_ -> withTickerInfoServer logger ctx (tisEndpoint cfg) $ \tisH -> do stopQuoteSourceServer $ \_ -> withTickerInfoServer logger ctx (tisEndpoint cfg) $ \tisH -> do
withZMQTradeSink ctx (tradesinkDashboard cfg) logger $ \tsDashboard -> withZMQTradeSink ctx (tradesinkDashboard cfg) logger $ \tsDashboard ->
case parseURI (T.unpack $ mqttUri cfg) of withGotifyTradeSink (T.unpack $ gotifyUri cfg) (T.unpack $ gotifyToken cfg) logger $ \tsGotify -> do
Just uri -> do
withMQTTTradeSink uri mqttTradeSinkTopic logger $ \tsMqtt -> do
txml <- Connector.start logger cfg qssChannel tisH txml <- Connector.start logger cfg qssChannel tisH
bracket (startBrokerServer bracket (startBrokerServer
[Connector.makeBrokerBackend txml (account cfg)] [Connector.makeBrokerBackend txml (account cfg)]
@ -81,7 +79,7 @@ main = do
(brokerEndpoint cfg) (brokerEndpoint cfg)
(brokerNotificationsEndpoint cfg) (brokerNotificationsEndpoint cfg)
(NotificationSqnum 1) (NotificationSqnum 1)
[tsDashboard, tsMqtt] [tsDashboard, tsGotify]
defaultServerSecurityParams defaultServerSecurityParams
logger) (\x -> do logger) (\x -> do
stopBrokerServer x stopBrokerServer x
@ -89,9 +87,6 @@ main = do
Connector.stop txml) $ \_ -> do Connector.stop txml) $ \_ -> do
withHistoryProviderServer ctx (historyProviderEndpoint cfg) txml tisH logger id $ \_ -> do withHistoryProviderServer ctx (historyProviderEndpoint cfg) txml tisH logger id $ \_ -> do
forever $ threadDelay 1000000 forever $ threadDelay 1000000
Nothing -> log Warning "main" "Can't parse MQTT URI"
log Info "main" "Shutting down" log Info "main" "Shutting down"
where
mqttTradeSinkTopic = "/atrade/trades"

Loading…
Cancel
Save