packages feed

haskoin-store-data 0.34.0 → 0.34.1

raw patch · 3 files changed

+61/−9 lines, 3 filesdep ~haskoin-store-data

Dependency ranges changed: haskoin-store-data

Files

haskoin-store-data.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 673e35a73b453ce8509ef026e9e11a225eca239ddd5cfc6301f96b21b702b6dc+-- hash: 2cebcf80600babffafe1b3f7d67748d1c9968a0f52836452b1c2d89f2dc250f3  name:           haskoin-store-data-version:        0.34.0+version:        0.34.1 synopsis:       Data for Haskoin Store description:    Please see the README on GitHub at <https://github.com/haskoin/haskoin-store#readme> category:       Bitcoin, Finance, Network@@ -74,7 +74,7 @@     , deepseq >=1.4.4.0     , hashable >=1.3.0.0     , haskoin-core >=0.13.6-    , haskoin-store-data ==0.34.0+    , haskoin-store-data ==0.34.1     , hspec >=2.7.1     , http-client >=0.6.4.1     , http-types >=0.12.3
src/Haskoin/Store/Data.hs view
@@ -76,6 +76,7 @@     , BlockHealth(..)     , TimeHealth(..)     , CountHealth(..)+    , MaxHealth(..)     , HealthCheck(..)     , Event(..)     , Except(..)@@ -1236,11 +1237,50 @@             countHealthMin <- o .: "min"             return CountHealth {..} +data MaxHealth =+    MaxHealth+        { maxHealthNum :: !Int+        , maxHealthMax :: !Int+        }+    deriving (Show, Eq, Generic, NFData)++instance Serialize MaxHealth where+    put h@MaxHealth {..} = do+        put $ isOK h+        put maxHealthNum+        put maxHealthMax+    get = do+        k <- get+        maxHealthNum <- get+        maxHealthMax <- get+        let h = MaxHealth {..}+        guard (k == isOK h)+        return h++instance Healthy MaxHealth where+    isOK MaxHealth {..} = maxHealthNum <= maxHealthMax++instance ToJSON MaxHealth where+    toJSON h@MaxHealth {..} =+        object+            [ "count" .= maxHealthNum+            , "max"   .= maxHealthMax+            , "ok"    .= isOK h+            ]++instance FromJSON MaxHealth where+    parseJSON =+        A.withObject "MaxHealth" $ \o -> do+            maxHealthNum <- o .: "count"+            maxHealthMax <- o .: "max"+            return MaxHealth {..}+ data HealthCheck =     HealthCheck         { healthBlocks     :: !BlockHealth         , healthLastBlock  :: !TimeHealth         , healthLastTx     :: !TimeHealth+        , healthPendingTxs :: !MaxHealth         , healthPeers      :: !CountHealth         , healthNetwork    :: !String         , healthVersion    :: !String@@ -1253,6 +1293,7 @@         put healthBlocks         put healthLastBlock         put healthLastTx+        put healthPendingTxs         put healthPeers         put healthNetwork         put healthVersion@@ -1261,6 +1302,7 @@         healthBlocks        <- get         healthLastBlock     <- get         healthLastTx        <- get+        healthPendingTxs    <- get         healthPeers         <- get         healthNetwork       <- get         healthVersion       <- get@@ -1273,6 +1315,7 @@         isOK healthBlocks &&         isOK healthLastBlock &&         isOK healthLastTx &&+        isOK healthPendingTxs &&         isOK healthPeers  instance ToJSON HealthCheck where@@ -1281,6 +1324,7 @@             [ "blocks"      .= healthBlocks             , "last-block"  .= healthLastBlock             , "last-tx"     .= healthLastTx+            , "pending-txs" .= healthPendingTxs             , "peers"       .= healthPeers             , "net"         .= healthNetwork             , "version"     .= healthVersion@@ -1290,12 +1334,13 @@ instance FromJSON HealthCheck where     parseJSON =         A.withObject "HealthCheck" $ \o -> do-            healthBlocks    <- o .: "blocks"-            healthLastBlock <- o .: "last-block"-            healthLastTx    <- o .: "last-tx"-            healthPeers     <- o .: "peers"-            healthNetwork   <- o .: "net"-            healthVersion   <- o .: "version"+            healthBlocks     <- o .: "blocks"+            healthLastBlock  <- o .: "last-block"+            healthLastTx     <- o .: "last-tx"+            healthPendingTxs <- o .: "pending-txs"+            healthPeers      <- o .: "peers"+            healthNetwork    <- o .: "net"+            healthVersion    <- o .: "version"             return HealthCheck {..}  data Event
test/Haskoin/Store/DataSpec.hs view
@@ -218,10 +218,17 @@             <$> arbitrary             <*> arbitrary +instance Arbitrary MaxHealth where+    arbitrary =+        MaxHealth+            <$> arbitrary+            <*> arbitrary+ instance Arbitrary HealthCheck where     arbitrary =         HealthCheck             <$> arbitrary+            <*> arbitrary             <*> arbitrary             <*> arbitrary             <*> arbitrary