BSD-3-Clause licensed by Sibi Prabakaran
Maintained by [email protected]
This version can be pinned in stack with:wai-slack-middleware-0.2.0@sha256:8994965a489188a01ba6d7e956d52603fe3a56c3e2bda87c3db087d8befd4b36,1310

Module documentation for 0.2.0

wai-slack-middleware

Build Status

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:

Changes

0.2.0

  • Change type of SlackConfig for additional use cases.
  • Haddock fixes

0.1.0.0

  • Initial version released.