packages feed

rollbar-client 0.1.0 → 1.0.0

raw patch · 5 files changed

+44/−27 lines, 5 filesdep ~aesondep ~basenew-uploader

Dependency ranges changed: aeson, base

Files

ChangeLog.md view
@@ -1,3 +1,14 @@ # Changelog for rollbar-client -## Unreleased changes+All notable changes to this project will be documented in this file++## [1.0.0] - 2022-12-28++### Changed++- Updated dependency aeson version.+- Updated base version++### Removed++- Support for GHC 8.6.1
README.md view
@@ -1,5 +1,8 @@ # Rollbar Client +![CI](https://github.com/stackbuilders/rollbar-haskell/workflows/CI/badge.svg)+![Hackage](https://img.shields.io/hackage/v/rollbar-client)+ Core library to communicate with [Rollbar API](https://explorer.docs.rollbar.com/). 
rollbar-client.cabal view
@@ -1,16 +1,17 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.33.0.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack ----- hash: b3e835bcc225cb66a06268126c5a04b48d06fd90b55677e26219ecfe207068d3+-- hash: 125ccbaa8f8a1b3dab026c05c979880711d5f61ef9cf7323bfe23bda09bb3743  name:           rollbar-client-version:        0.1.0+version:        1.0.0 synopsis:       Core library to communicate with Rollbar API. description:    Please see the README on GitHub at                 <https://github.com/stackbuilders/rollbar-haskell/tree/master/rollbar-client>+category:       Network homepage:       https://github.com/stackbuilders/rollbar-haskell#readme bug-reports:    https://github.com/stackbuilders/rollbar-haskell/issues author:         Stack Builders Inc.@@ -18,7 +19,8 @@ copyright:      2020 Stack Builders Inc. license:        MIT license-file:   LICENSE-tested-with:    GHC ==8.6.5, GHC ==8.8.4, GHC ==8.10.2+tested-with:+    GHC ==8.8.4, GHC ==8.10.2 build-type:     Simple extra-source-files:     README.md@@ -47,8 +49,8 @@       src   ghc-options: -Wall   build-depends:-      aeson >=1.4 && <2-    , base >=4.12 && <5+      aeson >=2.0 && <3+    , base >=4.13 && <5     , bytestring >=0.10 && <1     , directory >=1.3 && <2     , exceptions >=0.10 && <1@@ -68,7 +70,7 @@       example   ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N   build-depends:-      base >=4.12 && <5+      base >=4.13 && <5     , rollbar-client     , text   if flag(example)@@ -90,7 +92,7 @@       hspec-discover:hspec-discover >=2.7 && <3   build-depends:       aeson-    , base >=4.12 && <5+    , base >=4.13 && <5     , hspec >=2.7 && <3     , mtl     , rollbar-client
src/Rollbar/Client/Item.hs view
@@ -28,14 +28,15 @@   ) where  import qualified Control.Exception as E-import qualified Data.HashMap.Strict as HM+import qualified Data.Aeson.KeyMap as KM+import qualified Data.Aeson.Key as K import qualified Data.Text as T  import Control.Monad.IO.Class (MonadIO(..)) import Data.Aeson import Data.Maybe (catMaybes) import Data.Monoid (Endo(..))-import Data.Text+import Data.Text (Text) import Network.HTTP.Req import Rollbar.Client.Internal import Rollbar.Client.Settings@@ -239,7 +240,7 @@  instance ToJSON Message where   toJSON Message{..} = Object $-    HM.insert "body" (toJSON messageBody) messageMetadata+    KM.insert "body" (toJSON messageBody) messageMetadata  -- | The severity level. One of: "critical", "error", "warning", "info", -- "debug" Defaults to "error" for exceptions and "info" for messages. The@@ -308,18 +309,18 @@ getRequestModifier = do   RequestModifiers{..} <- settingsRequestModifiers <$> getSettings   return $ appEndo $ mconcat $ catMaybes-    [ withHeaders . excludeNames <$> requestModifiersExcludeHeaders-    , withParams . excludeNames <$> requestModifiersExcludeParams-    , withHeaders . includeNames <$> requestModifiersIncludeHeaders-    , withParams . includeNames <$> requestModifiersIncludeParams+    [ withHeaders . excludeNames . fmap K.fromText <$> requestModifiersExcludeHeaders+    , withParams . excludeNames . fmap K.fromText <$> requestModifiersExcludeParams+    , withHeaders . includeNames . fmap K.fromText <$> requestModifiersIncludeHeaders+    , withParams . includeNames . fmap K.fromText <$> requestModifiersIncludeParams     ]   where     withHeaders f = Endo $ \request -> request       { requestHeaders = f $ requestHeaders request }     withParams f = Endo $ \request -> request       { requestParams = f $ requestParams request }-    excludeNames names = HM.filterWithKey $ \name _ -> name `notElem` names-    includeNames names = HM.filterWithKey $ \name _ -> name `elem` names+    excludeNames names = KM.filterWithKey $ \name _ -> name `notElem` names+    includeNames names = KM.filterWithKey $ \name _ -> name `elem` names  -- | Data about the server related to this event. data Server = Server@@ -360,7 +361,7 @@ defaultNotifier :: Notifier defaultNotifier = Notifier   { notifierName = "rollbar-client"-  , notifierVersion = "0.1.0"+  , notifierVersion = "1.0.0"   }  newtype ItemId = ItemId Text
test/Rollbar/ClientSpec.hs view
@@ -7,7 +7,7 @@   ( spec   ) where -import qualified Data.HashMap.Strict as HM+import qualified Data.Aeson.KeyMap as KM  import Control.Monad.Reader import Data.Aeson@@ -41,11 +41,11 @@         request = Request           { requestUrl = "http://example.com"           , requestMethod = "GET"-          , requestHeaders = HM.fromList+          , requestHeaders = KM.fromList               [ ("Host", "example.com")               , ("Secret", "p4ssw0rd")               ]-          , requestParams = HM.fromList+          , requestParams = KM.fromList               [ ("user", "John Doe")               , ("password", "p4ssw0rd")               ]@@ -61,28 +61,28 @@             defaultRequestModifiers               { requestModifiersExcludeHeaders = Just $ pure "Secret" }       in requestModifier request `shouldBe` request-           { requestHeaders = HM.fromList [("Host", "example.com")] }+           { requestHeaders = KM.fromList [("Host", "example.com")] }      it "excludes the params not matching the given names" $       let requestModifier = runReader getRequestModifier $ mkSettings $             defaultRequestModifiers               { requestModifiersExcludeParams = Just $ pure "password" }       in requestModifier request `shouldBe` request-           { requestParams = HM.fromList [("user", "John Doe")] }+           { requestParams = KM.fromList [("user", "John Doe")] }      it "includes only the headers matching the given names" $       let requestModifier = runReader getRequestModifier $ mkSettings $             defaultRequestModifiers               { requestModifiersIncludeHeaders = Just $ pure "Host" }       in requestModifier request `shouldBe` request-           { requestHeaders = HM.fromList [("Host", "example.com")] }+           { requestHeaders = KM.fromList [("Host", "example.com")] }      it "includes only the params matching the given names" $       let requestModifier = runReader getRequestModifier $ mkSettings $             defaultRequestModifiers               { requestModifiersIncludeParams = Just $ pure "user" }       in requestModifier request `shouldBe` request-           { requestParams = HM.fromList [("user", "John Doe")] }+           { requestParams = KM.fromList [("user", "John Doe")] }    describe "defaultNotifier" $     it "matches the package name and version" $ do@@ -127,7 +127,7 @@           itemId <- runRollbar settings $ do             item <- mkItem $ PayloadMessage $ Message               { messageBody = "Request over threshold of 10 seconds"-              , messageMetadata = HM.fromList+              , messageMetadata = KM.fromList                   [ ("route", "home#index")                   , ("time_elapsed", Number 15.23)                   ]