{-# Language OverloadedStrings #-}

{-|
Module      : Client.Hooks
Description : Available hooks
Copyright   : (c) Dan Doel, 2016
License     : ISC
Maintainer  : dan.doel@gmail.com

The collection of all hooks available in the client.

-}

module Client.Hooks
  ( messageHooks
  ) where

import Data.Text
import Data.HashMap.Strict
import Client.Hook

import Client.Hook.DroneBLRelay
import Client.Hook.Matterbridge
import Client.Hook.Snotice
import Client.Hook.Znc.Buffextras

-- | All the available message hooks.
messageHooks :: HashMap Text ([Text] -> Maybe MessageHook)
messageHooks :: HashMap Text ([Text] -> Maybe MessageHook)
messageHooks = [(Text, [Text] -> Maybe MessageHook)]
-> HashMap Text ([Text] -> Maybe MessageHook)
forall k v. (Eq k, Hashable k) => [(k, v)] -> HashMap k v
fromList
  [ (Text
"snotice", \[Text]
_ -> MessageHook -> Maybe MessageHook
forall a. a -> Maybe a
Just MessageHook
snoticeHook)
  , (Text
"droneblrelay", [Text] -> Maybe MessageHook
droneblRelayHook)
  , (Text
"buffextras", [Text] -> Maybe MessageHook
buffextrasHook)
  , (Text
"matterbridge", [Text] -> Maybe MessageHook
matterbridgeHook)
  ]