Safe Haskell | None |
---|---|
Language | Haskell98 |
This module mainly contains HTTP wrappers required to operate VK monad
- data Error
- = ErrorParseURL { }
- | ErrorSetURL { }
- data ClientState = ClientState {}
- defaultState :: GenericOptions -> IO ClientState
- class ToClientState s where
- class (MonadIO m, MonadState s m, ToClientState s) => MonadClient m s | m -> s
- newtype URL_Protocol = URL_Protocol {}
- newtype URL_Query = URL_Query {}
- newtype URL_Host = URL_Host {}
- newtype URL_Port = URL_Port {}
- newtype URL_Path = URL_Path {}
- newtype URL = URL {}
- buildQuery :: [(String, String)] -> URL_Query
- urlCreate :: URL_Protocol -> URL_Host -> Maybe URL_Port -> URL_Path -> URL_Query -> Either Error URL
- urlFromString :: String -> Either Error URL
- splitFragments :: String -> String -> String -> [(String, String)]
- urlFragments :: URL -> [(String, String)]
- data Cookies = Cookies {}
- cookiesCreate :: () -> Cookies
- data Request = Request {}
- requestCreateGet :: MonadClient m s => URL -> Cookies -> m (Either Error Request)
- requestCreatePost :: MonadClient m s => FilledForm -> Cookies -> m (Either Error Request)
- requestUploadPhoto :: MonadClient m s => Text -> ByteString -> m (Either Error Request)
- data Response = Response {
- resp :: Response (Producer ByteString IO ())
- resp_body :: ByteString
- responseBodyS :: Response -> String
- responseBody :: Response -> ByteString
- dumpResponseBody :: MonadClient m s => FilePath -> Response -> m ()
- responseCookies :: Response -> Cookies
- responseHeaders :: Response -> [(String, String)]
- responseCode :: Response -> Int
- responseCodeMessage :: Response -> String
- responseRedirect :: Response -> Maybe URL
- responseOK :: Response -> Bool
- requestExecute :: MonadClient m s => Request -> m (Response, Cookies)
- downloadFileWith :: MonadClient m s => URL -> (ByteString -> IO ()) -> m ()
Documentation
data ClientState Source #
class ToClientState s where Source #
toClientState :: s -> ClientState Source #
modifyClientState :: (ClientState -> ClientState) -> s -> s Source #
class (MonadIO m, MonadState s m, ToClientState s) => MonadClient m s | m -> s Source #
MonadClient (VK r) State Source # | |
FIXME Pack Text to ByteStrings, not to String
urlCreate :: URL_Protocol -> URL_Host -> Maybe URL_Port -> URL_Path -> URL_Query -> Either Error URL Source #
splitFragments :: String -> String -> String -> [(String, String)] Source #
- FIXME Convert to ByteString / Text
cookiesCreate :: () -> Cookies Source #
requestCreateGet :: MonadClient m s => URL -> Cookies -> m (Either Error Request) Source #
Create HTTP(S) GET request
requestCreatePost :: MonadClient m s => FilledForm -> Cookies -> m (Either Error Request) Source #
Create HTTP(S) POST request
requestUploadPhoto :: MonadClient m s => Text -> ByteString -> m (Either Error Request) Source #
Upload the bytestring data bs
to the server text_url
- FIXME This function is not working. Looks like VK requires some other FIXME method rather than urlEncodedBody.
- FIXME Use
URL
rather than Text
responseBodyS :: Response -> String Source #
responseBody :: Response -> ByteString Source #
dumpResponseBody :: MonadClient m s => FilePath -> Response -> m () Source #
responseCookies :: Response -> Cookies Source #
responseCode :: Response -> Int Source #
responseCodeMessage :: Response -> String Source #
responseOK :: Response -> Bool Source #
requestExecute :: MonadClient m s => Request -> m (Response, Cookies) Source #
Execute the Request
created by requestCreatePost
or requestCreateGet
downloadFileWith :: MonadClient m s => URL -> (ByteString -> IO ()) -> m () Source #
Download helper