| 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 $ do
    hyper 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
instanceHyperViewTodos es where dataActionTodos = 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