Skip to content

Commit 749cd4a

Browse files
committed
Updates to request, and updates to GHC2021
Bumps version to 2.2.1, since only internals changed. Updates the request as follows: * Send the authentication token as a header * `sha` is deprecated in favor of `code_version` * add `haskell` as the `langauge` Updates to GHC2021 and removes OverloadedStrings as a default extension
1 parent 784732b commit 749cd4a

File tree

4 files changed

+33
-27
lines changed

4 files changed

+33
-27
lines changed

package.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: rollbar
2-
version: 2.2.0
2+
version: 2.2.1
33
synopsis: error tracking through rollbar.com
44
homepage: https://github.com/flipstone/rollbar-haskell
55
license: MIT
@@ -8,8 +8,8 @@ maintainer: [email protected]
88
copyright: Daggerboard Inc. makers of docmunch.com, Azara Solutions Inc.
99
category: Logging
1010

11-
default-extensions:
12-
- OverloadedStrings
11+
language: GHC2021
12+
1313
ghc-options:
1414
- -Wall
1515
- -Werror

rollbar.cabal

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
cabal-version: 1.12
22

3-
-- This file has been generated from package.yaml by hpack version 0.36.0.
3+
-- This file has been generated from package.yaml by hpack version 0.37.0.
44
--
55
-- see: https://github.com/sol/hpack
66

77
name: rollbar
8-
version: 2.2.0
8+
version: 2.2.1
99
synopsis: error tracking through rollbar.com
1010
category: Logging
1111
homepage: https://github.com/flipstone/rollbar-haskell
@@ -23,8 +23,6 @@ library
2323
Paths_rollbar
2424
hs-source-dirs:
2525
src
26-
default-extensions:
27-
OverloadedStrings
2826
ghc-options: -Wall -Werror -Wcpp-undef -Widentities -Wincomplete-record-updates -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints -fno-warn-orphans
2927
build-depends:
3028
aeson >=1.2 && <2.3
@@ -36,4 +34,4 @@ library
3634
, resourcet >=1.1 && <1.4
3735
, text >=1.2 && <2.2
3836
, vector >=0.12 && <0.14
39-
default-language: Haskell2010
37+
default-language: GHC2021

src/Rollbar.hs

+22-16
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
{-# LANGUAGE FlexibleContexts #-}
2-
{-# LANGUAGE ScopedTypeVariables #-}
1+
{-# LANGUAGE OverloadedStrings #-}
32

43
-- | Main entry point to the application.
54
module Rollbar
@@ -20,17 +19,18 @@ module Rollbar
2019
, buildJSON
2120
) where
2221

23-
import qualified Control.Exception as Ex
22+
import Control.Exception qualified as Ex
2423
import Control.Exception.Lifted (catch)
25-
import qualified Control.Monad as Monad
26-
import qualified Control.Monad.IO.Class as MIO
24+
import Control.Monad qualified as Monad
25+
import Control.Monad.IO.Class qualified as MIO
2726
import Control.Monad.Trans.Control (MonadBaseControl)
2827
import Data.Aeson ((.:), (.=))
29-
import qualified Data.Aeson as Aeson
28+
import Data.Aeson qualified as Aeson
3029
import Data.Aeson.Types (parseMaybe)
31-
import qualified Data.Maybe as Maybe
32-
import qualified Data.Text as T
33-
import qualified Data.Vector as V
30+
import Data.Maybe qualified as Maybe
31+
import Data.Text qualified as T
32+
import Data.Text.Encoding qualified as Enc
33+
import Data.Vector qualified as V
3434
import GHC.Stack (CallStack, SrcLoc (..), getCallStack)
3535
import Network.HTTP.Conduit
3636
( Request (method, requestBody)
@@ -39,6 +39,7 @@ import Network.HTTP.Conduit
3939
, httpLbs
4040
, newManager
4141
, parseUrlThrow
42+
, requestHeaders
4243
, tlsManagerSettings
4344
)
4445

@@ -70,7 +71,6 @@ data Settings = Settings
7071
, hostName :: String
7172
, reportErrors :: Bool
7273
}
73-
deriving (Show)
7474

7575
data Options = Options
7676
{ optionsPerson :: Maybe Person
@@ -176,11 +176,16 @@ reportErrorSWithOptions settings opts section loggerS msg fingerprint callstack
176176
do
177177
logger msg
178178
MIO.liftIO $ do
179-
initReq <- parseUrlThrow "https://api.rollbar.com/api/1/item/"
179+
unauthenticatedReq <- parseUrlThrow "https://api.rollbar.com/api/1/item/"
180180
manager <- newManager tlsManagerSettings
181181
let
182-
req = initReq {method = "POST", requestBody = RequestBodyLBS $ Aeson.encode rollbarJson}
183-
response <- httpLbs req manager
182+
authenticatedRequest =
183+
unauthenticatedReq
184+
{ method = "POST"
185+
, requestHeaders = [("X-Rollbar-Access-Token", Enc.encodeUtf8 . unApiToken $ token settings)]
186+
, requestBody = RequestBodyLBS $ Aeson.encode rollbarJson
187+
}
188+
response <- httpLbs authenticatedRequest manager
184189
let
185190
body = responseBody response
186191
uuid =
@@ -222,12 +227,13 @@ buildJSON ::
222227
Aeson.Value
223228
buildJSON settings opts section msg fingerprint callstack level =
224229
Aeson.object
225-
[ "access_token" .= unApiToken (token settings)
226-
, "data"
230+
[ "data"
227231
.= Aeson.object
228232
( [ "environment" .= T.toLower (unEnvironment $ environment settings)
229233
, "level" .= Aeson.toJSON level
230-
, "server" .= Aeson.object ["host" .= hostName settings, "sha" .= optionsRevisionSha opts]
234+
, "code_version" .= optionsRevisionSha opts
235+
, "language" .= ("haskell" :: T.Text)
236+
, "server" .= Aeson.object ["host" .= hostName settings]
231237
, "person" .= Aeson.toJSON (optionsPerson opts)
232238
, "body"
233239
.= Aeson.object

src/Rollbar/MonadLogger.hs

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
module Rollbar.MonadLogger (reportErrorS) where
1+
module Rollbar.MonadLogger
2+
( reportErrorS
3+
) where
24

3-
import qualified Data.Text as T
5+
import Data.Text qualified as T
46
import GHC.Exception (CallStack)
5-
import qualified Rollbar
7+
import Rollbar qualified
68

79
-- | report errors to rollbar.com and log them with monad-logger
810
reportErrorS ::

0 commit comments

Comments
 (0)