{-# LANGUAGE OverloadedStrings #-}
module Network.Bugsnag.Reporter
( reportError
) where
import Control.Monad (void)
import Data.Text.Encoding (encodeUtf8)
import Network.Bugsnag.Report
import Network.Bugsnag.Settings
import Network.HTTP.Client
import Network.HTTP.Simple (setRequestBodyJSON, setRequestHeader)
reportError :: Manager -> BugsnagApiKey -> BugsnagReport -> IO ()
reportError manager apiKey report = do
request <- setupRequest <$> parseRequest "POST https://notify.bugsnag.com"
void $ httpNoBody request manager
where
key = encodeUtf8 $ unBugsnagApiKey apiKey
setupRequest
= setRequestBodyJSON report
. setRequestHeader "Bugsnag-Api-Key" [key]
. setRequestHeader "Bugsnag-Payload-Version" ["4"]