api-builder-0.2.0.0: src/Network/API/Builder/Builder.hs
module Network.API.Builder.Builder
( Builder(..)
, basicBuilder ) where
import Network.API.Builder.Routes
import Data.Text (Text)
import Network.HTTP.Conduit (Request)
import qualified Data.Text as T
-- | Builder type for the API. Keeps track of the API's name and base URL, and how
-- to modify Routes and Requests before they're run.
data Builder = Builder { _name :: Text
, _baseURL :: Text
, _customizeRoute :: Route -> Route
, _customizeRequest :: Request -> Request }
instance Show Builder where
show b = "Builder { name = " ++ T.unpack (_name b) ++ "}"
-- | Makes a basic builder, i.e. one that simply has a name and base URL
-- and doesn't fiddle with Routes / Requests.
basicBuilder :: Text -- ^ name
-> Text -- ^ base url
-> Builder -- ^ a simple @Builder@
basicBuilder n b = Builder n b id id