Added log event parsing to Quixotic.Database.SQLite

[?]
Oct 24, 2014, 5:13 AM
FRPWIKCNGK6PM6VCKEHEUG5A2LWL7WFN66L4CPQ7DLN4WAS3TIZQC

Dependencies

  • [2] 64VI73NP Server now compiles using abstracted SQLite
  • [3] 64C6AWH6 Rename Ananke -> Quixotic, project reboot.

Change contents

  • edit in src/Quixotic/Database/SQLite.hs at line 7
    [3.3719]
    [3.3719]
    import Data.Maybe (catMaybes)
  • replacement in src/Quixotic/Database/SQLite.hs at line 32
    [2.1511][2.1511:1560]()
    return . intervals $ fmap parseRow (join rows)
    [2.1511]
    [3.4555]
    return . intervals . catMaybes $ fmap parseRow (join rows)
  • replacement in src/Quixotic/Database/SQLite.hs at line 34
    [3.4556][2.1561:1616]()
    parseRow :: Row Value -> LogEntry
    parseRow = undefined
    [3.4556]
    [2.1616]
    parseRow :: Row Value -> Maybe LogEntry
    parseRow row = do
    a <- lookup "btcAddr" row >>= valueAddr
    t <- lookup "eventTime" row >>= valueTime
    ev <- lookup "event" row >>= (valueEvent t)
    return $ LogEntry a ev
    valueAddr :: Value -> Maybe BtcAddr
    valueAddr (Text t) = parseBtcAddr $ T.pack t
    valueAddr _ = Nothing
    valueTime :: Value -> Maybe UTCTime
    valueTime (Text t) = parseTime defaultTimeLocale "%c" t
    valueTime _ = Nothing
    valueEvent :: UTCTime -> Value -> Maybe WorkEvent
    valueEvent t (Text "start") = Just (StartWork t)
    valueEvent t (Text "stop") = Just (StopWork t)
    valueEvent _ _ = Nothing