packages feed

raven-haskell 0.1.0.1 → 0.1.1.0

raw patch · 2 files changed

+15/−6 lines, 2 filesdep +mtldep +resourcetdep ~http-conduitPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: mtl, resourcet

Dependency ranges changed: http-conduit

API changes (from Hackage documentation)

- System.Log.Raven.Interfaces: instance Eq HttpArgs
- System.Log.Raven.Interfaces: instance Show HttpArgs
- System.Log.Raven.Types: instance Eq SentryLevel
- System.Log.Raven.Types: instance Eq SentryRecord
- System.Log.Raven.Types: instance Eq SentrySettings
- System.Log.Raven.Types: instance Read SentryLevel
- System.Log.Raven.Types: instance Read SentrySettings
- System.Log.Raven.Types: instance Show SentryLevel
- System.Log.Raven.Types: instance Show SentryRecord
- System.Log.Raven.Types: instance Show SentrySettings
- System.Log.Raven.Types: instance ToJSON SentryLevel
- System.Log.Raven.Types: instance ToJSON SentryRecord
- System.Log.Raven.Types: sentryPrivateKey :: SentrySettings -> !String
- System.Log.Raven.Types: sentryProjectId :: SentrySettings -> !String
- System.Log.Raven.Types: sentryPublicKey :: SentrySettings -> !String
- System.Log.Raven.Types: sentryURI :: SentrySettings -> !String
- System.Log.Raven.Types: serviceDefaults :: SentryService -> (SentryRecord -> SentryRecord)
- System.Log.Raven.Types: serviceFallback :: SentryService -> (SentryRecord -> IO ())
- System.Log.Raven.Types: serviceSettings :: SentryService -> SentrySettings
- System.Log.Raven.Types: serviceTransport :: SentryService -> (SentrySettings -> SentryRecord -> IO ())
- System.Log.Raven.Types: srCulprit :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srEventId :: SentryRecord -> !String
- System.Log.Raven.Types: srExtra :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srInterfaces :: SentryRecord -> HashMap String Value
- System.Log.Raven.Types: srLevel :: SentryRecord -> !SentryLevel
- System.Log.Raven.Types: srLogger :: SentryRecord -> !String
- System.Log.Raven.Types: srMessage :: SentryRecord -> !String
- System.Log.Raven.Types: srModules :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srPlatform :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srServerName :: SentryRecord -> Maybe String
- System.Log.Raven.Types: srTags :: SentryRecord -> !Assoc
- System.Log.Raven.Types: srTimestamp :: SentryRecord -> !String
+ System.Log.Raven.Interfaces: instance GHC.Classes.Eq System.Log.Raven.Interfaces.HttpArgs
+ System.Log.Raven.Interfaces: instance GHC.Show.Show System.Log.Raven.Interfaces.HttpArgs
+ System.Log.Raven.Transport.HttpConduit: sendRecordWith :: MonadIO m => Manager -> SentrySettings -> SentryRecord -> m ()
+ System.Log.Raven.Types: [sentryPrivateKey] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryProjectId] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryPublicKey] :: SentrySettings -> !String
+ System.Log.Raven.Types: [sentryURI] :: SentrySettings -> !String
+ System.Log.Raven.Types: [serviceDefaults] :: SentryService -> (SentryRecord -> SentryRecord)
+ System.Log.Raven.Types: [serviceFallback] :: SentryService -> (SentryRecord -> IO ())
+ System.Log.Raven.Types: [serviceSettings] :: SentryService -> SentrySettings
+ System.Log.Raven.Types: [serviceTransport] :: SentryService -> (SentrySettings -> SentryRecord -> IO ())
+ System.Log.Raven.Types: [srCulprit] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srEventId] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srExtra] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srInterfaces] :: SentryRecord -> HashMap String Value
+ System.Log.Raven.Types: [srLevel] :: SentryRecord -> !SentryLevel
+ System.Log.Raven.Types: [srLogger] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srMessage] :: SentryRecord -> !String
+ System.Log.Raven.Types: [srModules] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srPlatform] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srServerName] :: SentryRecord -> Maybe String
+ System.Log.Raven.Types: [srTags] :: SentryRecord -> !Assoc
+ System.Log.Raven.Types: [srTimestamp] :: SentryRecord -> !String
+ System.Log.Raven.Types: instance Data.Aeson.Types.ToJSON.ToJSON System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance Data.Aeson.Types.ToJSON.ToJSON System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Classes.Eq System.Log.Raven.Types.SentrySettings
+ System.Log.Raven.Types: instance GHC.Read.Read System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Read.Read System.Log.Raven.Types.SentrySettings
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentryLevel
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentryRecord
+ System.Log.Raven.Types: instance GHC.Show.Show System.Log.Raven.Types.SentrySettings
- System.Log.Raven.Interfaces: (.=:) :: ToJSON v => String -> v -> [(String, Value)]
+ System.Log.Raven.Interfaces: (.=:) :: (ToJSON v) => String -> v -> [(String, Value)]
- System.Log.Raven.Interfaces: fromMaybe :: ToJSON v => String -> Maybe v -> [(String, Value)]
+ System.Log.Raven.Interfaces: fromMaybe :: (ToJSON v) => String -> Maybe v -> [(String, Value)]
- System.Log.Raven.Interfaces: interface :: ToJSON v => String -> v -> SentryRecord -> SentryRecord
+ System.Log.Raven.Interfaces: interface :: (ToJSON v) => String -> v -> SentryRecord -> SentryRecord

Files

raven-haskell.cabal view
@@ -1,5 +1,5 @@ name:                raven-haskell-version:             0.1.0.1+version:             0.1.1.0 synopsis:            Haskell client for Sentry logging service. -- description:          homepage:            https://bitbucket.org/dpwiz/raven-haskell@@ -26,9 +26,11 @@     base ==4.*,     aeson,     bytestring >= 0.10,-    http-conduit,+    http-conduit >= 0.4.30,+    mtl,     network,     random >= 1.0,+    resourcet,     text,     time >= 1.5.0.1,     unordered-containers,
src/System/Log/Raven/Transport/HttpConduit.hs view
@@ -3,9 +3,11 @@ {-# LANGUAGE OverloadedStrings #-} module System.Log.Raven.Transport.HttpConduit     ( sendRecord+    , sendRecordWith     ) where -import Network (withSocketsDo)+import Control.Monad.Trans (MonadIO, liftIO)+import Control.Monad.Trans.Resource (runResourceT) import Network.HTTP.Conduit import qualified Data.ByteString.Char8 as BS @@ -13,7 +15,12 @@ import System.Log.Raven.Types  sendRecord :: SentrySettings -> SentryRecord -> IO ()-sendRecord conf rec = withSocketsDo $ do+sendRecord conf rec = do+    manager <- newManager tlsManagerSettings+    runResourceT $ sendRecordWith manager conf rec++sendRecordWith :: MonadIO m => Manager -> SentrySettings -> SentryRecord -> m ()+sendRecordWith manager conf rec = do     let ep = endpointURL conf     let auth = concat [ "Sentry sentry_version=2.0"                       , ", sentry_client=raven-haskell-0.1.0.0"@@ -23,10 +30,10 @@     case ep of         Nothing -> return ()         Just url -> do-            req' <- parseUrl url+            req' <- liftIO $ parseUrlThrow url             let req = req' { method = "POST"                            , requestHeaders = [("X-Sentry-Auth", BS.pack auth)]                            , requestBody = RequestBodyLBS (recordLBS rec)                            }-            res <- withManager $ httpLbs req+            _ <- httpLbs req manager             return ()