Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ReqResult tag a
- = ResponseSuccess tag a XhrResponse
- | ResponseFailure tag Text XhrResponse
- | RequestFailure tag Text
- data ClientOptions = ClientOptions {
- optsRequestFixup :: forall a. Show a => XhrRequest a -> JSM (XhrRequest a)
- defaultClientOptions :: ClientOptions
- withCredentials :: (Show a, Functor f) => (Bool -> f Bool) -> XhrRequest a -> f (XhrRequest a)
- reqSuccess :: ReqResult tag a -> Maybe a
- reqSuccess' :: ReqResult tag a -> Maybe (tag, a)
- reqFailure :: ReqResult tag a -> Maybe Text
- reqFailure' :: ReqResult tag a -> Maybe (tag, Text)
- response :: ReqResult tag a -> Maybe XhrResponse
- reqTag :: ReqResult tag a -> tag
- data QParam a
- = QParamSome a
- | QNone
- | QParamInvalid Text
- qParamToQueryPart :: ToHttpApiData a => QParam a -> Either Text (Maybe Text)
- data QueryPart t
- = QueryPartParam (Dynamic t (Either Text (Maybe Text)))
- | QueryPartParams (Dynamic t [Text])
- | QueryPartFlag (Dynamic t Bool)
- data Req t = Req {}
- defReq :: Req t
- prependToPathParts :: Dynamic t (Either Text Text) -> Req t -> Req t
- addHeader :: (ToHttpApiData a, Reflex t) => Text -> Dynamic t (Either Text a) -> Req t -> Req t
- reqToReflexRequest :: forall t. Reflex t => Text -> Dynamic t BaseUrl -> Req t -> Dynamic t (Either Text (XhrRequest XhrPayload))
- displayHttpRequest :: Text -> Text
- performRequests :: forall t m f tag. (SupportsServantReflex t m, Traversable f) => Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (tag, f (Either Text XhrResponse)))
- performSomeRequestsAsync :: (MonadIO (Performable m), MonadJSM (Performable m), HasWebView (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f, IsXhrPayload a, Show a) => ClientOptions -> Event t (f (Either Text (XhrRequest a))) -> m (Event t (f (Either Text XhrResponse)))
- performSomeRequestsAsync' :: (MonadJSM (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f, Show b) => ClientOptions -> (XhrRequest b -> (a -> JSM ()) -> Performable m XMLHttpRequest) -> Event t (Performable m (f (Either Text (XhrRequest b)))) -> m (Event t (f (Either Text a)))
- type XhrPayload = ByteString
- bytesToPayload :: ByteString -> XhrPayload
- performRequestsCT :: (SupportsServantReflex t m, MimeUnrender ct a, Traversable f) => Proxy ct -> Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (f (ReqResult tag a)))
- performRequestsNoBody :: (SupportsServantReflex t m, Traversable f) => Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (f (ReqResult tag NoContent)))
- evalResponse :: (XhrResponse -> Either Text a) -> (tag, XhrResponse) -> ReqResult tag a
- fanReqResult :: Reflex t => Event t (ReqResult tag a) -> (Event t Text, Event t a)
- fanReqResult' :: Reflex t => Event t (ReqResult tag a) -> (Event t (tag, Text), Event t (tag, a))
- note :: e -> Maybe a -> Either e a
- fmapL :: (e -> e') -> Either e a -> Either e' a
- builderToText :: Builder -> Text
- escape :: Text -> Text
Documentation
The result of a request event
ResponseSuccess tag a XhrResponse | The succesfully decoded response from a request tagged with |
ResponseFailure tag Text XhrResponse | The failure response, which may have failed decoding or had a non-successful response code |
RequestFailure tag Text | A failure to construct the request tagged with |
data ClientOptions Source #
ClientOptions | |
|
withCredentials :: (Show a, Functor f) => (Bool -> f Bool) -> XhrRequest a -> f (XhrRequest a) Source #
reqSuccess :: ReqResult tag a -> Maybe a Source #
Simple filter/accessor for successful responses, when you want to ignore the error case. For example: >> goodResponses fmapMaybe reqSuccess <$ clientFun triggers
reqSuccess' :: ReqResult tag a -> Maybe (tag, a) Source #
Simple filter/accessor like reqSuccess
, but keeping the request tag
reqFailure' :: ReqResult tag a -> Maybe (tag, Text) Source #
Simple filter/accessor like reqFailure
, but keeping the request tag
response :: ReqResult tag a -> Maybe XhrResponse Source #
Simple filter/accessor for the raw XHR response
You must wrap the parameter of a QueryParam endpoint with QParam
to
indicate whether the parameter is valid and present, validly absent, or
invalid
QParamSome a | A valid query parameter |
QNone | Indication that the parameter is intentionally absent (the request is valid) |
QParamInvalid Text | Indication that your validation failed (the request isn't valid) |
qParamToQueryPart :: ToHttpApiData a => QParam a -> Either Text (Maybe Text) Source #
QueryPartParam (Dynamic t (Either Text (Maybe Text))) | |
QueryPartParams (Dynamic t [Text]) | |
QueryPartFlag (Dynamic t Bool) |
addHeader :: (ToHttpApiData a, Reflex t) => Text -> Dynamic t (Either Text a) -> Req t -> Req t Source #
reqToReflexRequest :: forall t. Reflex t => Text -> Dynamic t BaseUrl -> Req t -> Dynamic t (Either Text (XhrRequest XhrPayload)) Source #
performing requests
displayHttpRequest :: Text -> Text Source #
performRequests :: forall t m f tag. (SupportsServantReflex t m, Traversable f) => Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (tag, f (Either Text XhrResponse))) Source #
This function performs the request
performSomeRequestsAsync :: (MonadIO (Performable m), MonadJSM (Performable m), HasWebView (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f, IsXhrPayload a, Show a) => ClientOptions -> Event t (f (Either Text (XhrRequest a))) -> m (Event t (f (Either Text XhrResponse))) Source #
Issues a collection of requests when the supplied Event fires. When ALL requests from a given firing complete, the results are collected and returned via the return Event.
performSomeRequestsAsync' :: (MonadJSM (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f, Show b) => ClientOptions -> (XhrRequest b -> (a -> JSM ()) -> Performable m XMLHttpRequest) -> Event t (Performable m (f (Either Text (XhrRequest b)))) -> m (Event t (f (Either Text a))) Source #
A modified version or Reflex.Dom.Xhr.performRequestsAsync that accepts 'f (Either e (XhrRequestb))' events
type XhrPayload = ByteString Source #
performRequestsCT :: (SupportsServantReflex t m, MimeUnrender ct a, Traversable f) => Proxy ct -> Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (f (ReqResult tag a))) Source #
performRequestsNoBody :: (SupportsServantReflex t m, Traversable f) => Text -> Dynamic t (f (Req t)) -> Dynamic t BaseUrl -> ClientOptions -> Event t tag -> m (Event t (f (ReqResult tag NoContent))) Source #
evalResponse :: (XhrResponse -> Either Text a) -> (tag, XhrResponse) -> ReqResult tag a Source #
fanReqResult :: Reflex t => Event t (ReqResult tag a) -> (Event t Text, Event t a) Source #
Utility for simultaneously accessing/filtering Success and Failure
response Event
s,
fanReqResult' :: Reflex t => Event t (ReqResult tag a) -> (Event t (tag, Text), Event t (tag, a)) Source #
Utility for simultaneously accessing/filtering Success and Failure
response Event
s, but keeping the request tag
builderToText :: Builder -> Text Source #