Safe Haskell | None |
---|---|
Language | GHC2021 |
Web.Hyperbole.Effect.Query
Synopsis
- query :: forall a (es :: [Effect]). (FromQuery a, Hyperbole :> es) => Eff es a
- setQuery :: forall a (es :: [Effect]). (ToQuery a, Hyperbole :> es) => a -> Eff es ()
- param :: forall a (es :: [Effect]). (FromParam a, Hyperbole :> es) => Param -> Eff es a
- lookupParam :: forall a (es :: [Effect]). (FromParam a, Hyperbole :> es) => Param -> Eff es (Maybe a)
- setParam :: forall a (es :: [Effect]). (ToParam a, Hyperbole :> es) => Param -> a -> Eff es ()
- deleteParam :: forall (es :: [Effect]). Hyperbole :> es => Param -> Eff es ()
- queryParams :: forall (es :: [Effect]). Hyperbole :> es => Eff es QueryData
- modifyQuery :: forall (es :: [Effect]). Hyperbole :> es => (QueryData -> QueryData) -> Eff es ()
Documentation
query :: forall a (es :: [Effect]). (FromQuery a, Hyperbole :> es) => Eff es a Source #
Parse querystring from the Request
into a datatype. See FromQuery
data Filters = Filters { active :: Bool , term :: Text } deriving (Generic,FromQuery
,ToQuery
) page :: (Hyperbole
:> es) =>Eff
es (Page
'[Todos]) page = do filters <- query @Filters todos <- loadTodos filters pure $ dohyper
Todos $ todosView todos
setQuery :: forall a (es :: [Effect]). (ToQuery a, Hyperbole :> es) => a -> Eff es () Source #
Update the client's querystring to an encoded datatype. See ToQuery
instanceHyperView
Todos es where dataAction
Todos = SetFilters Filters deriving (Show, Read,ViewAction
)update
(SetFilters filters) = do setQuery filters todos <- loadTodos filters pure $ todosView todos
lookupParam :: forall a (es :: [Effect]). (FromParam a, Hyperbole :> es) => Param -> Eff es (Maybe a) Source #
Parse a single parameter from the query string if available
setParam :: forall a (es :: [Effect]). (ToParam a, Hyperbole :> es) => Param -> a -> Eff es () Source #
deleteParam :: forall (es :: [Effect]). Hyperbole :> es => Param -> Eff es () Source #
Delete a single parameter from the query string