{-# LANGUAGE DataKinds #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeOperators #-} module Web.Tracker ( module Web.Tracker.Types , story , updateStory , stories -- Re-exports , ServantError ) where -------------------------------------------------------------------------------- import Data.Proxy import Data.Text (Text) import Servant.API import Servant.Client -------------------------------------------------------------------------------- import Web.Tracker.Types -------------------------------------------------------------------------------- type API = "services" :> "v5" :> "stories" :> Header "X-TrackerToken" Text :> Capture ":storyId" StoryId :> Get '[JSON] Story :<|> "services" :> "v5" :> "stories" :> Header "X-TrackerToken" Text :> ReqBody '[JSON] UpdateStory :> Capture ":storyId" StoryId :> Put '[JSON] Story :<|> "services" :> "v5" :> "projects" :> Header "X-TrackerToken" Text :> Capture ":projectId" ProjectId :> "stories" :> QueryParam "with_state" StoryState :> Get '[JSON] [Story] api :: Proxy API api = Proxy story :<|> updateStory :<|> stories = client api (BaseUrl Https "www.pivotaltracker.com" 443)