-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Library for easily building REST API wrappers in Haskell -- -- Library for easily building REST API wrappers in Haskell @package api-builder @version 0.1.0.0 module APIBuilder.Routes type URLFragment = Text type URLParam = (Text, Maybe Text) data Route Route :: [URLFragment] -> [URLParam] -> HTTPMethod -> Route fragments :: Route -> [URLFragment] urlParams :: Route -> [URLParam] httpMethod :: Route -> HTTPMethod data HTTPMethod GET :: HTTPMethod POST :: HTTPMethod CustomMethod :: Text -> HTTPMethod showMethod :: HTTPMethod -> String routeURL :: Text -> Route -> Text (=.) :: Text -> Maybe Text -> (Text, Maybe Text) instance Show HTTPMethod instance Read HTTPMethod instance Eq HTTPMethod instance Show Route instance Read Route instance Eq Route module APIBuilder.Error data APIError a APIError :: a -> APIError a HTTPError :: HttpException -> APIError a InvalidURLError :: APIError a ParseError :: String -> APIError a instance Show a => Show (APIError a) module APIBuilder.Decoding decode :: (FromJSON a, FromJSON e) => ByteString -> Either (APIError e) a module APIBuilder.Builder data Builder Builder :: Text -> Text -> (Route -> Route) -> (Request -> Request) -> Builder _name :: Builder -> Text _baseURL :: Builder -> Text _customizeRoute :: Builder -> Route -> Route _customizeRequest :: Builder -> Request -> Request basicBuilder :: Text -> Text -> Builder instance Show Builder module APIBuilder.API type API s e a = EitherT (APIError e) (StateT Builder (StateT s IO)) a liftEither :: API s e a -> API s e a liftBuilder :: StateT Builder (StateT s IO) a -> API s e a liftState :: StateT s IO a -> API s e a runAPI :: Builder -> s -> API s e a -> IO (Either (APIError e) a) runRoute :: (FromJSON a, FromJSON e) => Route -> API s e a routeRequest :: Builder -> Route -> Maybe Request name :: Text -> API s e () baseURL :: Text -> API s e () customizeRoute :: (Route -> Route) -> API s e () customizeRequest :: (Request -> Request) -> API s e () module APIBuilder module APIBuilder.Examples.StackOverflow data Question Question :: Text -> Bool -> Int -> [Text] -> Question title :: Question -> Text isAnswered :: Question -> Bool score :: Question -> Int tags :: Question -> [Text] newtype Questions Questions :: [Question] -> Questions stackOverflow :: Builder answersRoute :: Route getAnswers :: IO (Either (APIError ()) Questions) instance Show Question instance Eq Question instance Show Questions instance Eq Questions instance FromJSON Questions instance FromJSON Question