-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A library for building HipChat Bots -- -- A library for building HipChat Bots @package hipbot @version 0.5 module HipBot.Notification data NotificationColor [Yellow] :: NotificationColor [Green] :: NotificationColor [Red] :: NotificationColor [Purple] :: NotificationColor [Gray] :: NotificationColor [Random] :: NotificationColor data NotificationMessage [TextNotification] :: Text -> NotificationMessage [HtmlNotification] :: Text -> NotificationMessage data Notification [Notification] :: Maybe NotificationColor -> Bool -> NotificationMessage -> Notification [_notificationColor] :: Notification -> Maybe NotificationColor [_notificationNotify] :: Notification -> Bool [_notificationMessage] :: Notification -> NotificationMessage class HasColor s a | s -> a color :: HasColor s a => Lens' s a class HasMessage s a | s -> a message :: HasMessage s a => Lens' s a class HasNotify s a | s -> a notify :: HasNotify s a => Lens' s a defaultNotification :: NotificationMessage -> Notification textNotification :: Text -> Notification htmlNotification :: Text -> Notification instance HasColor Notification (Maybe NotificationColor) instance HasMessage Notification NotificationMessage instance HasNotify Notification Bool instance ToJSON Notification instance Eq Notification instance Show Notification instance Eq NotificationMessage instance Show NotificationMessage instance Eq NotificationColor instance Show NotificationColor instance ToJSON NotificationColor module HipBot.AbsoluteURI newtype AbsoluteURI [AbsoluteURI] :: URI -> AbsoluteURI parseAbsoluteURI :: String -> Maybe AbsoluteURI appendPath :: AbsoluteURI -> [Text] -> AbsoluteURI relPath :: [Text] -> String relativeTo :: [Text] -> AbsoluteURI -> AbsoluteURI instance Eq AbsoluteURI instance Show AbsoluteURI instance IsString AbsoluteURI instance ToJSON AbsoluteURI instance FromJSON AbsoluteURI module HipBot.Descriptor data AddOn [AddOn] :: Text -> Text -> Text -> Links -> Maybe Capabilities -> Maybe Vendor -> AddOn [_addOnKey] :: AddOn -> Text [_addOnName] :: AddOn -> Text [_addOnDescription] :: AddOn -> Text [_addOnLinks] :: AddOn -> Links [_addOnCapabilities] :: AddOn -> Maybe Capabilities [_addOnVendor] :: AddOn -> Maybe Vendor defaultAddOn :: Text -> Text -> Text -> Links -> AddOn data Links [Links] :: AbsoluteURI -> Maybe AbsoluteURI -> Links [_linksSelf] :: Links -> AbsoluteURI [_linksHomepage] :: Links -> Maybe AbsoluteURI defaultLinks :: AbsoluteURI -> Links data Capabilities [Capabilities] :: Maybe Installable -> Maybe APIConsumer -> Maybe OAuth2Provider -> [Webhook] -> Maybe Configurable -> Capabilities [_capabilitiesInstallable] :: Capabilities -> Maybe Installable [_capabilitiesHipchatApiConsumer] :: Capabilities -> Maybe APIConsumer [_capabilitiesOauth2Provider] :: Capabilities -> Maybe OAuth2Provider [_capabilitiesWebhooks] :: Capabilities -> [Webhook] [_capabilitiesConfigurable] :: Capabilities -> Maybe Configurable defaultCapabilities :: Capabilities data Installable [Installable] :: Maybe AbsoluteURI -> Bool -> Bool -> Installable [_installableCallbackUrl] :: Installable -> Maybe AbsoluteURI [_installableAllowRoom] :: Installable -> Bool [_installableAllowGlobal] :: Installable -> Bool defaultInstallable :: Installable data APIConsumer [APIConsumer] :: [APIScope] -> Maybe Text -> APIConsumer [_apiScopes] :: APIConsumer -> [APIScope] [_apiFromName] :: APIConsumer -> Maybe Text defaultAPIConsumer :: APIConsumer data OAuth2Provider [OAuth2Provider] :: AbsoluteURI -> AbsoluteURI -> OAuth2Provider [_oAuth2ProviderAuthorizationUrl] :: OAuth2Provider -> AbsoluteURI [_oAuth2ProviderTokenUrl] :: OAuth2Provider -> AbsoluteURI data APIScope [AdminGroup] :: APIScope [AdminRoom] :: APIScope [ManageRooms] :: APIScope [SendMessage] :: APIScope [SendNotification] :: APIScope [ViewGroup] :: APIScope [ViewMessages] :: APIScope apiScopeStr :: IsString a => APIScope -> a data Webhook [Webhook] :: AbsoluteURI -> Maybe Text -> RoomEvent -> Webhook [_webhookUrl] :: Webhook -> AbsoluteURI [_webhookPattern] :: Webhook -> Maybe Text [_webhookEvent] :: Webhook -> RoomEvent webhook :: AbsoluteURI -> RoomEvent -> Webhook data Configurable [Configurable] :: AbsoluteURI -> Configurable [_configurableUrl] :: Configurable -> AbsoluteURI data Vendor [Vendor] :: AbsoluteURI -> Text -> Vendor [_vendorUrl] :: Vendor -> AbsoluteURI [_vendorName] :: Vendor -> Text data Registration [Registration] :: OAuthId -> AbsoluteURI -> Maybe RoomId -> Int -> Text -> Registration [_registrationOauthId] :: Registration -> OAuthId [_registrationCapabilitiesUrl] :: Registration -> AbsoluteURI [_registrationRoomId] :: Registration -> Maybe RoomId [_registrationGroupId] :: Registration -> Int [_registrationOauthSecret] :: Registration -> Text data AccessToken [AccessToken] :: Text -> UTCTime -> AccessToken [_accessTokenAccessToken] :: AccessToken -> Text [_accessTokenExpires] :: AccessToken -> UTCTime class HasCapabilities s a | s -> a capabilities :: HasCapabilities s a => Lens' s a class HasDescription s a | s -> a description :: HasDescription s a => Lens' s a class HasKey s a | s -> a key :: HasKey s a => Lens' s a class HasLinks s a | s -> a links :: HasLinks s a => Lens' s a class HasName s a | s -> a name :: HasName s a => Lens' s a class HasVendor s a | s -> a vendor :: HasVendor s a => Lens' s a class HasHomepage s a | s -> a homepage :: HasHomepage s a => Lens' s a class HasSelf s a | s -> a self :: HasSelf s a => Lens' s a class HasConfigurable s a | s -> a configurable :: HasConfigurable s a => Lens' s a class HasHipchatApiConsumer s a | s -> a hipchatApiConsumer :: HasHipchatApiConsumer s a => Lens' s a class HasInstallable s a | s -> a installable :: HasInstallable s a => Lens' s a class HasOauth2Provider s a | s -> a oauth2Provider :: HasOauth2Provider s a => Lens' s a class HasWebhooks s a | s -> a webhooks :: HasWebhooks s a => Lens' s a class HasAllowGlobal s a | s -> a allowGlobal :: HasAllowGlobal s a => Lens' s a class HasAllowRoom s a | s -> a allowRoom :: HasAllowRoom s a => Lens' s a class HasCallbackUrl s a | s -> a callbackUrl :: HasCallbackUrl s a => Lens' s a class HasFromName s a | s -> a fromName :: HasFromName s a => Lens' s a class HasScopes s a | s -> a scopes :: HasScopes s a => Lens' s a class HasAuthorizationUrl s a | s -> a authorizationUrl :: HasAuthorizationUrl s a => Lens' s a class HasTokenUrl s a | s -> a tokenUrl :: HasTokenUrl s a => Lens' s a class HasUrl s a | s -> a url :: HasUrl s a => Lens' s a class HasCapabilitiesUrl s a | s -> a capabilitiesUrl :: HasCapabilitiesUrl s a => Lens' s a class HasGroupId s a | s -> a groupId :: HasGroupId s a => Lens' s a class HasOauthId s a | s -> a oauthId :: HasOauthId s a => Lens' s a class HasOauthSecret s a | s -> a oauthSecret :: HasOauthSecret s a => Lens' s a class HasRoomId s a | s -> a roomId :: HasRoomId s a => Lens' s a class HasAccessToken s a | s -> a accessToken :: HasAccessToken s a => Lens' s a class HasExpires s a | s -> a expires :: HasExpires s a => Lens' s a class HasEvent s a | s -> a event :: HasEvent s a => Lens' s a class HasPattern s a | s -> a pattern :: HasPattern s a => Lens' s a instance ToJSON Registration instance FromJSON Registration instance ToJSON Webhook instance FromJSON Webhook instance ToJSON Vendor instance FromJSON Vendor instance ToJSON Links instance FromJSON Links instance ToJSON AddOn instance FromJSON AddOn instance ToJSON OAuth2Provider instance FromJSON OAuth2Provider instance ToJSON APIConsumer instance FromJSON APIConsumer instance ToJSON Configurable instance FromJSON Configurable instance HasEvent Webhook RoomEvent instance HasPattern Webhook (Maybe Text) instance HasUrl Webhook AbsoluteURI instance HasAccessToken AccessToken Text instance HasExpires AccessToken UTCTime instance HasCapabilitiesUrl Registration AbsoluteURI instance HasGroupId Registration Int instance HasOauthId Registration OAuthId instance HasOauthSecret Registration Text instance HasRoomId Registration (Maybe RoomId) instance HasUrl Configurable AbsoluteURI instance HasAuthorizationUrl OAuth2Provider AbsoluteURI instance HasTokenUrl OAuth2Provider AbsoluteURI instance HasFromName APIConsumer (Maybe Text) instance HasScopes APIConsumer [APIScope] instance HasAllowGlobal Installable Bool instance HasAllowRoom Installable Bool instance HasCallbackUrl Installable (Maybe AbsoluteURI) instance HasConfigurable Capabilities (Maybe Configurable) instance HasHipchatApiConsumer Capabilities (Maybe APIConsumer) instance HasInstallable Capabilities (Maybe Installable) instance HasOauth2Provider Capabilities (Maybe OAuth2Provider) instance HasWebhooks Capabilities [Webhook] instance HasHomepage Links (Maybe AbsoluteURI) instance HasSelf Links AbsoluteURI instance HasCapabilities AddOn (Maybe Capabilities) instance HasDescription AddOn Text instance HasKey AddOn Text instance HasLinks AddOn Links instance HasName AddOn Text instance HasVendor AddOn (Maybe Vendor) instance Eq AddOn instance Show AddOn instance Eq Vendor instance Show Vendor instance Eq Capabilities instance Show Capabilities instance Eq Configurable instance Show Configurable instance Eq Webhook instance Show Webhook instance Eq APIConsumer instance Show APIConsumer instance Eq APIScope instance Eq OAuth2Provider instance Show OAuth2Provider instance Eq Installable instance Show Installable instance Eq Links instance Show Links instance ToJSON Capabilities instance FromJSON Capabilities instance ToJSON Installable instance FromJSON Installable instance Show APIScope instance ToJSON APIScope instance FromJSON APIScope module HipBot.API data HipBotAPI m [HipBotAPI] :: (Registration -> AccessToken -> m ()) -> (OAuthId -> m ()) -> (OAuthId -> m (Maybe (Registration, AccessToken))) -> (OAuthId -> AccessToken -> m ()) -> HipBotAPI m [apiInsertRegistration] :: HipBotAPI m -> Registration -> AccessToken -> m () [apiDeleteRegistration] :: HipBotAPI m -> OAuthId -> m () [apiLookupRegistration] :: HipBotAPI m -> OAuthId -> m (Maybe (Registration, AccessToken)) [apiUpdateAccessToken] :: HipBotAPI m -> OAuthId -> AccessToken -> m () stmAPI :: MonadIO m => IO (HipBotAPI m) pgAPI :: MonadIO m => Pool Connection -> HipBotAPI m instance FromRow RegRow module HipBot.Webhooks data RoomLinks [RoomLinks] :: Maybe AbsoluteURI -> AbsoluteURI -> AbsoluteURI -> AbsoluteURI -> RoomLinks [_roomLinksMembers] :: RoomLinks -> Maybe AbsoluteURI [_roomLinksParticipants] :: RoomLinks -> AbsoluteURI [_roomLinksSelf] :: RoomLinks -> AbsoluteURI [_roomLinksWebhooks] :: RoomLinks -> AbsoluteURI data Room [Room] :: RoomId -> RoomName -> RoomLinks -> Room [_roomRoomId] :: Room -> RoomId [_roomName] :: Room -> RoomName [_roomLinks] :: Room -> RoomLinks data MessageItem [MessageItem] :: Text -> MessageItem [_messageItemMessage] :: MessageItem -> Text data WebhookRoomItem [WebhookRoomMessage] :: Room -> MessageItem -> WebhookRoomItem data WebhookRoomEvent [WebhookRoomEvent] :: Int -> Maybe String -> WebhookRoomItem -> WebhookRoomEvent [_webhookRoomEventWebhookId] :: WebhookRoomEvent -> Int [_webhookRoomEventOauthId] :: WebhookRoomEvent -> Maybe String [_webhookRoomEventItem] :: WebhookRoomEvent -> WebhookRoomItem class HasMembers s a | s -> a members :: HasMembers s a => Lens' s a class HasParticipants s a | s -> a participants :: HasParticipants s a => Lens' s a class HasSelf s a | s -> a self :: HasSelf s a => Lens' s a class HasWebhooks s a | s -> a webhooks :: HasWebhooks s a => Lens' s a class HasRoomId s a | s -> a roomId :: HasRoomId s a => Lens' s a class HasName s a | s -> a name :: HasName s a => Lens' s a class HasLinks s a | s -> a links :: HasLinks s a => Lens' s a class HasMessage s a | s -> a message :: HasMessage s a => Lens' s a class HasWebhookId s a | s -> a webhookId :: HasWebhookId s a => Lens' s a class HasOauthId s a | s -> a oauthId :: HasOauthId s a => Lens' s a class HasItem s a | s -> a item :: HasItem s a => Lens' s a decodeWebhookRoomEvent :: (Functor m, MonadIO m, MonadReader s m, HasRequest s Request) => m (Either String WebhookRoomEvent) webhookResource :: (MonadIO m, MonadReader r m, HasRequest r Request, MonadState s m, HasReqData s) => String -> (WebhookRoomEvent -> HaltT m (Maybe Notification)) -> Resource m roomMessageWebhookResource :: (MonadIO m, MonadReader r m, MonadState s m, HasReqData s, HasRequest r Request) => String -> (Room -> MessageItem -> HaltT m (Maybe Notification)) -> Resource m -- | Creates a simple "command" processing webhook resource. Commands -- processes are limited to pure functions that may or may not produce a -- reply. simpleWebhookResource :: MonadIO m => String -> [Text] -> (Text -> Maybe Text) -> WaiResource m instance FromJSON MessageItem instance FromJSON RoomLinks instance HasItem WebhookRoomEvent WebhookRoomItem instance HasOauthId WebhookRoomEvent (Maybe String) instance HasWebhookId WebhookRoomEvent Int instance FromJSON WebhookRoomEvent instance Eq WebhookRoomEvent instance Show WebhookRoomEvent instance Eq WebhookRoomItem instance Show WebhookRoomItem instance HasMessage MessageItem Text instance Eq MessageItem instance Show MessageItem instance HasLinks Room RoomLinks instance HasName Room RoomName instance HasRoomId Room RoomId instance FromJSON Room instance Eq Room instance Show Room instance HasMembers RoomLinks (Maybe AbsoluteURI) instance HasParticipants RoomLinks AbsoluteURI instance HasSelf RoomLinks AbsoluteURI instance HasWebhooks RoomLinks AbsoluteURI instance Eq RoomLinks instance Show RoomLinks module HipBot data HipBot m data HipBotAPI m [HipBotAPI] :: (Registration -> AccessToken -> m ()) -> (OAuthId -> m ()) -> (OAuthId -> m (Maybe (Registration, AccessToken))) -> (OAuthId -> AccessToken -> m ()) -> HipBotAPI m [apiInsertRegistration] :: HipBotAPI m -> Registration -> AccessToken -> m () [apiDeleteRegistration] :: HipBotAPI m -> OAuthId -> m () [apiLookupRegistration] :: HipBotAPI m -> OAuthId -> m (Maybe (Registration, AccessToken)) [apiUpdateAccessToken] :: HipBotAPI m -> OAuthId -> AccessToken -> m () type OnUninstall m = OAuthId -> m () type OAuthId = Text type RoomName = Text type RoomId = Int data RoomEvent [RoomMessage] :: RoomEvent [RoomNotification] :: RoomEvent [RoomExit] :: RoomEvent [RoomEnter] :: RoomEvent [RoomTopicChange] :: RoomEvent newHipBot :: HipBotAPI m -> AddOn -> OnUninstall m -> IO (HipBot m) newHipBot' :: Monad m => HipBotAPI m -> AddOn -> IO (HipBot m) hipBotResources :: (Applicative m, MonadCatch m, MonadIO m) => HipBot m -> Dispatcher (WaiResource m) configResource :: (Applicative m, Monad m) => HipBot m -> (Registration -> WaiCrankT m Body) -> WaiResource m verifySignature :: (Applicative m, Monad m) => HipBot m -> HaltT (WaiCrankT m) Registration sendNotification :: (Applicative m, MonadCatch m, MonadIO m) => HipBot m -> OAuthId -> Either RoomName RoomId -> Notification -> m (Maybe NotificationError) instance Show NotificationError