hyperbole-0.4.2: Interactive HTML apps using type-safe serverside Haskell
Safe HaskellNone
LanguageGHC2021

Web.Hyperbole.Effect.Response

Synopsis

Documentation

respondEarly :: forall (es :: [Effect]) id. (Hyperbole :> es, HyperView id es) => id -> View id () -> Eff es () Source #

Respond with the given view, and stop execution

notFound :: forall (es :: [Effect]) a. Hyperbole :> es => Eff es a Source #

Respond immediately with 404 Not Found

findUser :: (Hyperbole :> es, Users :> es) => Int -> Eff es User
findUser uid = do
  mu <- send (LoadUser uid)
  maybe notFound pure mu

userPage :: (Hyperbole :> es, Users :> es) => Eff es (Page '[])
userPage = do
  user <- findUser 100

  -- skipped if user not found
  pure $ userView user

parseError :: forall (es :: [Effect]) a. Hyperbole :> es => Text -> Eff es a Source #

Respond immediately with a parse error

redirect :: forall (es :: [Effect]) a. Hyperbole :> es => Url -> Eff es a Source #

Redirect immediately to the Url

view :: forall (es :: [Effect]). Hyperbole :> es => View () () -> Eff es Response Source #

Manually set the response to the given view. Normally you would return a View from runPage instead