-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Please see the README on GitHub at -- https://github.com/githubuser/slack-progressbar#readme @package slack-progressbar @version 0.1.0.0 -- | This is a simple library for creating and updating Slack messages that -- contain progressbars. It can be used to display the progress of a -- long-running task in a Slack channel, for example as part of CI -- tooling. -- --
--   main :: IO ()
--   main = do
--     let mySlackConfig = SlackConfig { slackApiToken = "my-slack-api-token" }
--   
--     let progressBarInfo = def { progressBarInfoTopMessage = Just "Top message"
--                               , progressBarInfoSize = Just 0 }
--   
--     result <- runExceptT $ do
--       progressBar <- ExceptT $ createProgressBar mySlackConfig "test-channel" progressBarInfo
--   
--       forM_ [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] $ \size -> do
--         threadDelay 1000000
--         ExceptT $ updateProgressBar mySlackConfig progressBar (progressBarInfo { progressBarInfoSize = Just size })
--   
--     putStrLn [i|Result: '#{result}'|]
--   
module Web.Slack.ProgressBar -- | Create a progress bar message on the given channel. Returns a -- ProgressBar which can be used to update the message by calling -- updateProgressBar. createProgressBar :: SlackConfig -> ChannelName -> ProgressBarInfo -> IO (Either Text ProgressBar) -- | Update an existing progress bar. updateProgressBar :: SlackConfig -> ProgressBar -> ProgressBarInfo -> IO (Either Text ()) -- | The state of a progress bar message. data ProgressBarInfo ProgressBarInfo :: Maybe Text -> Maybe Text -> Maybe Double -> Maybe [ProgressBarAttachment] -> ProgressBarInfo -- | Message to show above the progress bar [progressBarInfoTopMessage] :: ProgressBarInfo -> Maybe Text -- | Message to show below the progress bar [progressBarInfoBottomMessage] :: ProgressBarInfo -> Maybe Text -- | Size of the progress bar, a Double from 0 to 100 [progressBarInfoSize] :: ProgressBarInfo -> Maybe Double -- | Slack attachments for the message [progressBarInfoAttachments] :: ProgressBarInfo -> Maybe [ProgressBarAttachment] -- | A Slack attachment. data ProgressBarAttachment ProgressBarAttachment :: Text -> Text -> ProgressBarAttachment -- | Attachment text [progressBarAttachmentText] :: ProgressBarAttachment -> Text -- | Attachment color [progressBarAttachmentColor] :: ProgressBarAttachment -> Text -- | An opaque type representing an existing Slack message. data ProgressBar type ChannelName = Text -- | Configuration options needed to connect to the Slack API newtype SlackConfig SlackConfig :: String -> SlackConfig -- | Slack API token [slackApiToken] :: SlackConfig -> String instance GHC.Show.Show Web.Slack.ProgressBar.SlackConfig instance Data.Aeson.Types.ToJSON.ToJSON Web.Slack.ProgressBar.ProgressBarAttachment