module ChatWork.Client (
Token
, ChatWorkClient(..)
, Client(..)
) where
import Data.ByteString (ByteString)
import Network.HTTP.Req (Option, Scheme (Https), Url, header, https,
(/:))
type Token = ByteString
newtype ChatWorkClient = ChatWorkClient Token
class Client a where
type ClientScheme a :: Scheme
baseUrl :: a -> Url (ClientScheme a)
mkHeader :: a -> Option scheme
instance Client ChatWorkClient where
type ClientScheme ChatWorkClient = 'Https
baseUrl = const (https "api.chatwork.com" /: "v2")
mkHeader (ChatWorkClient token) = header "X-ChatWorkToken" token