|
|
|
@ -100,11 +100,11 @@ periodToSeconds PeriodMonth = 60 * 60 * 24 * 30 |
|
|
|
|
|
|
|
|
|
|
|
data TickerRequest = |
|
|
|
data TickerRequest = |
|
|
|
TickerRequest { |
|
|
|
TickerRequest { |
|
|
|
rqTicker :: T.Text, |
|
|
|
rqTicker :: !T.Text, |
|
|
|
rqStartTime :: UTCTime, |
|
|
|
rqStartTime :: !UTCTime, |
|
|
|
rqEndTime :: UTCTime, |
|
|
|
rqEndTime :: !UTCTime, |
|
|
|
rqPeriod :: Period, |
|
|
|
rqPeriod :: !Period, |
|
|
|
rqCompression :: Maybe T.Text |
|
|
|
rqCompression :: !(Maybe T.Text) |
|
|
|
} deriving (Show, Eq) |
|
|
|
} deriving (Show, Eq) |
|
|
|
|
|
|
|
|
|
|
|
data QHPRequest = |
|
|
|
data QHPRequest = |
|
|
|
@ -113,8 +113,8 @@ data QHPRequest = |
|
|
|
deriving (Show, Eq) |
|
|
|
deriving (Show, Eq) |
|
|
|
|
|
|
|
|
|
|
|
data QHPResponse = |
|
|
|
data QHPResponse = |
|
|
|
QHPBarsResponse [Bar] |
|
|
|
QHPBarsResponse ![Bar] |
|
|
|
| QHPTickersListResponse [TickerId] |
|
|
|
| QHPTickersListResponse ![TickerId] |
|
|
|
|
|
|
|
|
|
|
|
instance FromJSON QHPRequest where |
|
|
|
instance FromJSON QHPRequest where |
|
|
|
parseJSON = withObject "Request" $ \v -> |
|
|
|
parseJSON = withObject "Request" $ \v -> |
|
|
|
@ -164,12 +164,12 @@ timeParse = do |
|
|
|
|
|
|
|
|
|
|
|
data Env = Env |
|
|
|
data Env = Env |
|
|
|
{ |
|
|
|
{ |
|
|
|
eRun :: TVar Bool |
|
|
|
eRun :: !(TVar Bool) |
|
|
|
, eContext :: Context |
|
|
|
, eContext :: !Context |
|
|
|
, eEndpoint :: T.Text |
|
|
|
, eEndpoint :: !T.Text |
|
|
|
, eLogger :: LogAction IO Message |
|
|
|
, eLogger :: !(LogAction IO Message) |
|
|
|
, eTxml :: TXMLConnectorHandle |
|
|
|
, eTxml :: !TXMLConnectorHandle |
|
|
|
, eTisHandle :: TickerInfoServerHandle |
|
|
|
, eTisHandle :: !TickerInfoServerHandle |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
newtype App a = App { unApp :: ReaderT Env IO a } |
|
|
|
newtype App a = App { unApp :: ReaderT Env IO a } |
|
|
|
@ -238,13 +238,13 @@ workThread = do |
|
|
|
Right request -> do |
|
|
|
Right request -> do |
|
|
|
response <- handleRequest sender request |
|
|
|
response <- handleRequest sender request |
|
|
|
sendResponseWithDelimiter sock sender response |
|
|
|
sendResponseWithDelimiter sock sender response |
|
|
|
Left err -> log Warning "HistoryProviderServer.WorkThread" $ "Unable to parse request: " <> T.pack err |
|
|
|
Left err -> log Warning "HistoryProviderServer.WorkThread" $ "Unable to parse request" |
|
|
|
(sender:rawRq:_) -> |
|
|
|
(sender:rawRq:_) -> |
|
|
|
case eitherDecode $ BL.fromStrict rawRq of |
|
|
|
case eitherDecode $ BL.fromStrict rawRq of |
|
|
|
Right request -> do |
|
|
|
Right request -> do |
|
|
|
response <- handleRequest sender request |
|
|
|
response <- handleRequest sender request |
|
|
|
sendResponse sock sender response |
|
|
|
sendResponse sock sender response |
|
|
|
Left err -> log Warning "HistoryProviderServer.WorkThread" $ "Unable to parse request: " <> T.pack err |
|
|
|
Left err -> log Warning "HistoryProviderServer.WorkThread" $ "Unable to parse request" |
|
|
|
_ -> log Warning "HistoryProviderServer.WorkThread" "Unable to parse request" |
|
|
|
_ -> log Warning "HistoryProviderServer.WorkThread" "Unable to parse request" |
|
|
|
liftIO $ readTVarIO runVar |
|
|
|
liftIO $ readTVarIO runVar |
|
|
|
liftIO $ close sock |
|
|
|
liftIO $ close sock |
|
|
|
|