Description
A Slack middleware for WAI.
Description
Logs the request information into Slack through webhook from a WAI application.
README.md
wai-slack-middleware
A Slack middleware for wai Used for logging the request information into Slack from a WAI application via middleware.
Usage:
Settings are controlled via the type SlackConfig
:
import Network.HTTP.Types.Status
let slackConfig = SlackConfig {
webHookUrl = "https://hooks.slack.com/services/xxx/xxxxxxxx",
httpManager = appHttpManager foundation,
responseFilter = \resp -> status400 == responseStatus resp,
requestFilter = \_ -> True
}
The above configuration will send slack notification for all 400 http status code.
Integrating with yesod scaffolding templates
Go to Application.hs
and change the function makeApplication
to something like this:
makeApplication :: App -> IO Application
makeApplication foundation = do
logWare <- makeLogWare foundation
let slackConfig = SlackConfig {
webHookUrl = "https://hooks.slack.com/services/xxxx/xxxxxxx",
httpManager = appHttpManager foundation,
responseFilter = \resp -> status400 == responseStatus resp,
requestFilter = \_ -> True
}
-- Create the WAI application and apply middlewares
appPlain <- toWaiAppPlain foundation
return $ slack slackConfig $ logWare $ defaultMiddlewaresNoLogging appPlain
Ref: