packages feed

tempodb 0.2.2.2 → 0.2.2.3

raw patch · 5 files changed

+25/−20 lines, 5 filesdep ~aeson

Dependency ranges changed: aeson

Files

DEBT view
@@ -10,3 +10,4 @@    and I'm repeating the same where functions in many different    functions (which is bad!). 3. [ ] Hackage docs! I haven't written anything. Naughty me.+4. [ ] Make Data polymorphic over the value type for any Num (how?).
src/Database/Tempodb/Methods/Read.hs view
@@ -10,13 +10,14 @@ import           Data.Aeson             as A import           Data.ByteString.Char8  as C8 import           Data.ByteString.Lazy   (fromStrict)+import           Data.Int import           Data.Monoid import           Database.Tempodb.Types import           Database.Tempodb.Util import           Network.HTTP.Base      (urlEncodeVars) import           Network.Http.Client -readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe SeriesData)+readOne :: IdOrKey -> Maybe QueryArgs -> Tempodb (Maybe (SeriesData Int64)) readOne q qa = do     auth <- ask     req  <- liftIO . buildRequest $ do@@ -36,7 +37,7 @@         Nothing  -> mempty         Just qry -> "?" <> (C8.pack $ urlEncodeVars qry) -readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData])+readMulti :: Maybe QueryArgs -> Tempodb (Maybe [SeriesData Int64]) readMulti q = do     auth <- ask     req  <- liftIO . buildRequest $ do
src/Database/Tempodb/Methods/Write.hs view
@@ -11,12 +11,13 @@ import           Data.Aeson             as A import           Data.ByteString.Char8  as C8 import           Data.ByteString.Lazy   (fromStrict, toStrict)+import           Data.Int import           Data.Monoid import           Database.Tempodb.Types as T import           Database.Tempodb.Util import           Network.Http.Client -writeOne :: IdOrKey -> Data -> Tempodb Bool+writeOne :: IdOrKey -> Data Int64 -> Tempodb Bool writeOne q d = do     let postdata = toStrict $ A.encode d     auth <- ask@@ -34,7 +35,7 @@     ident (T.SeriesKey k) = "/key/" <> k     path = rootpath <> "/series" <> (ident q) -writeBulk :: Bulk -> Tempodb Bool+writeBulk :: Bulk Int64 -> Tempodb Bool writeBulk d = do     let postData = toStrict $ A.encode d     auth <- ask@@ -47,7 +48,7 @@      return True -writeMulti :: [Data] -> T.Tempodb (Either (Maybe [Data]) Bool)+writeMulti :: [Data Int64] -> T.Tempodb (Either (Maybe [Data Int64]) Bool) writeMulti d = do     let postData = toStrict $ A.encode d     auth <- ask
src/Database/Tempodb/Types.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE DeriveDataTypeable         #-}+{-# LANGUAGE FlexibleInstances          #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings          #-} @@ -11,6 +12,7 @@ import           Data.Aeson.Types import qualified Data.ByteString       as B import           Data.ByteString.Char8 as C8+import           Data.Int import           Data.Map              (Map) import qualified Data.Text             as T import           Data.Text.Encoding    (decodeUtf8, encodeUtf8)@@ -82,15 +84,15 @@     parseJSON = withText "ByteString" $ pure . encodeUtf8     {-# INLINE parseJSON #-} -data Data = Data+data Num a => Data a = Data     { uid       :: Maybe IdOrKey     , timestamp :: Maybe TempoDBTime-    , value     :: Double+    , value     :: a     } deriving (Show, Eq, Ord) -data Bulk = Bulk+data Bulk a = Bulk     { timestmp   :: TempoDBTime-    , bulkValues :: [Data]+    , bulkValues :: [Data a]     } deriving (Show, Eq, Ord)  data Rollup = Rollup@@ -109,16 +111,16 @@     , count  :: Int     } deriving (Show, Eq, Ord) -data SeriesData = SeriesData+data SeriesData a = SeriesData     { series  :: Series     , start   :: TempoDBTime     , end     :: TempoDBTime-    , values  :: [Data]+    , values  :: [Data a]     , rollup  :: Maybe Rollup     , summary :: Summary     } deriving (Show, Eq, Ord) -instance FromJSON SeriesData where+instance FromJSON (SeriesData Int64) where     parseJSON (Object o) = SeriesData    <$>                            o .: "series" <*>                            o .: "start"  <*>@@ -129,13 +131,13 @@      parseJSON _ = mzero -instance FromJSON Bulk where+instance FromJSON (Bulk Int64) where     parseJSON (Object o) = Bulk     <$>                            o .: "t" <*>                            o .: "data"     parseJSON _ = mzero -instance ToJSON Bulk where+instance ToJSON (Bulk Int64) where     toJSON (Bulk t v) = object         [ "t"    .= t         , "data" .= v@@ -173,10 +175,10 @@                   Nothing -> mzero     parseJSON _          = mzero -instance FromJSON Data where+instance FromJSON (Data Int64) where     parseJSON = parseSeriesData -parseSeriesData :: Value -> Parser Data+parseSeriesData :: Value -> Parser (Data Int64) parseSeriesData v = do     case v of         Object o -> do@@ -194,10 +196,10 @@         Nothing    -> return Nothing         Just idkey -> return . Just $ SeriesKey idkey -instance ToJSON Data where+instance ToJSON (Data Int64) where     toJSON = buildSeriesData -buildSeriesData :: Data -> Value+buildSeriesData :: (Data Int64) -> Value buildSeriesData (Data i t v) = object . ts . eid $ ["v" .= v]   where     ts l = case t of
tempodb.cabal view
@@ -1,5 +1,5 @@ name:                tempodb-version:             0.2.2.2+version:             0.2.2.3 synopsis:            A small Haskell wrapper around the TempoDB api.  description:         TempoDB is a time-series database as-a-service with a@@ -35,7 +35,7 @@     HTTP                      >= 4000.2.9 && < 4000.2.12,     HsOpenSSL                 >= 0.10.4   && < 0.11,     bytestring                >= 0.9.1    && < 0.11,-    aeson                     >= 0.7.0.1  && < 0.7.0.2,+    aeson                     >= 0.7.0.1  && < 0.7.1,     io-streams                >= 1.1.2.0  && < 1.2,     blaze-builder             >= 0.3.3.0  && < 0.4,     containers                >= 0.5.5.0  && < 0.6,