Safe Haskell | None |
---|---|
Language | Haskell2010 |
Yesod.Core.Types
Synopsis
- type SessionMap = Map Text ByteString
- type SaveSession = SessionMap -> IO [Header]
- newtype SessionBackend = SessionBackend {
- sbLoadSession :: Request -> IO (SessionMap, SaveSession)
- data SessionCookie = SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap
- data ClientSessionDateCache = ClientSessionDateCache {}
- data YesodRequest = YesodRequest {
- reqGetParams :: ![(Text, Text)]
- reqCookies :: ![(Text, Text)]
- reqWaiRequest :: !Request
- reqLangs :: ![Text]
- reqToken :: !(Maybe Text)
- reqSession :: !SessionMap
- reqAccept :: ![ContentType]
- data YesodResponse
- = YRWai !Response
- | YRWaiApp !Application
- | YRPlain !Status ![Header] !ContentType !Content !SessionMap
- type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)])
- data FileInfo = FileInfo {
- fileName :: !Text
- fileContentType :: !Text
- fileSourceRaw :: !(ConduitT () ByteString (ResourceT IO) ())
- fileMove :: !(FilePath -> IO ())
- data FileUpload
- = FileUploadMemory !(BackEnd ByteString)
- | FileUploadDisk !(InternalState -> BackEnd FilePath)
- | FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ()))
- data Approot master
- = ApprootRelative
- | ApprootStatic !Text
- | ApprootMaster !(master -> Text)
- | ApprootRequest !(master -> Request -> Text)
- type ResolvedApproot = Text
- data AuthResult
- data ScriptLoadPosition master
- = BottomOfBody
- | BottomOfHeadBlocking
- | BottomOfHeadAsync !(BottomOfHeadAsync master)
- type BottomOfHeadAsync master = [Text] -> Maybe (HtmlUrl (Route master)) -> HtmlUrl (Route master)
- type Texts = [Text]
- newtype WaiSubsite = WaiSubsite {}
- newtype WaiSubsiteWithAuth = WaiSubsiteWithAuth {}
- data RunHandlerEnv child site = RunHandlerEnv {
- rheRender :: !(Route site -> [(Text, Text)] -> Text)
- rheRoute :: !(Maybe (Route child))
- rheRouteToMaster :: !(Route child -> Route site)
- rheSite :: !site
- rheChild :: !child
- rheUpload :: !(RequestBodyLength -> FileUpload)
- rheLog :: !(Loc -> LogSource -> LogLevel -> LogStr -> IO ())
- rheOnError :: !(ErrorResponse -> YesodApp)
- rheMaxExpires :: !Text
- rheCatchHandlerExceptions :: !(forall a (m :: Type -> Type). MonadUnliftIO m => m a -> (SomeException -> m a) -> m a)
- data HandlerData child site = HandlerData {
- handlerRequest :: !YesodRequest
- handlerEnv :: !(RunHandlerEnv child site)
- handlerState :: !(IORef GHState)
- handlerResource :: !InternalState
- data YesodRunnerEnv site = YesodRunnerEnv {
- yreLogger :: !Logger
- yreSite :: !site
- yreSessionBackend :: !(Maybe SessionBackend)
- yreGen :: !(IO Int)
- yreGetMaxExpires :: !(IO Text)
- data YesodSubRunnerEnv sub parent = YesodSubRunnerEnv {
- ysreParentRunner :: !(ParentRunner parent)
- ysreGetSub :: !(parent -> sub)
- ysreToParentRoute :: !(Route sub -> Route parent)
- ysreParentEnv :: !(YesodRunnerEnv parent)
- type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application
- newtype HandlerFor site a = HandlerFor {
- unHandlerFor :: HandlerData site site -> IO a
- data GHState = GHState {
- ghsSession :: !SessionMap
- ghsRBC :: !(Maybe RequestBodyContents)
- ghsIdent :: !Int
- ghsCache :: !TypeMap
- ghsCacheBy :: !KeyedTypeMap
- ghsHeaders :: !(Endo [Header])
- type YesodApp = YesodRequest -> ResourceT IO YesodResponse
- newtype WidgetFor site a = WidgetFor {
- unWidgetFor :: WidgetData site -> IO a
- data WidgetData site = WidgetData {}
- tellWidget :: GWData (Route site) -> WidgetFor site ()
- type RY master = Route master -> [(Text, Text)] -> Text
- newtype CssBuilder = CssBuilder {}
- data PageContent url = PageContent {}
- data Content
- = ContentBuilder !Builder !(Maybe Int)
- | ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ())
- | ContentFile !FilePath !(Maybe FilePart)
- | ContentDontEvaluate !Content
- data TypedContent = TypedContent !ContentType !Content
- type RepHtml = Html
- newtype RepJson = RepJson Content
- newtype RepPlain = RepPlain Content
- newtype RepXml = RepXml Content
- type ContentType = ByteString
- data JSONResponse a where
- JSONResponse :: forall a. ToJSON a => a -> JSONResponse a
- newtype DontFullyEvaluate a = DontFullyEvaluate {
- unDontFullyEvaluate :: a
- data ErrorResponse
- data Header
- data Location url
- newtype UniqueList x = UniqueList ([x] -> [x])
- data Script url = Script {
- scriptLocation :: !(Location url)
- scriptAttributes :: ![(Text, Text)]
- data Stylesheet url = Stylesheet {
- styleLocation :: !(Location url)
- styleAttributes :: ![(Text, Text)]
- newtype Title = Title {}
- newtype Description = Description {}
- newtype Head url = Head (HtmlUrl url)
- newtype Body url = Body (HtmlUrl url)
- type CssBuilderUrl a = (a -> [(Text, Text)] -> Text) -> Builder
- data GWData a = GWData {
- gwdBody :: !(Body a)
- gwdTitle :: !(Last Title)
- gwdDescription :: !(Last Description)
- gwdScripts :: !(UniqueList (Script a))
- gwdStylesheets :: !(UniqueList (Stylesheet a))
- gwdCss :: !(Map (Maybe Text) (CssBuilderUrl a))
- gwdJavascript :: !(Maybe (JavascriptUrl a))
- gwdHead :: !(Head a)
- data HandlerContents
- = HCContent !Status !TypedContent
- | HCError !ErrorResponse
- | HCSendFile !ContentType !FilePath !(Maybe FilePart)
- | HCRedirect !Status !Text
- | HCCreated !Text
- | HCWai !Response
- | HCWaiApp !Application
- data Logger = Logger {}
- loggerPutStr :: Logger -> LogStr -> IO ()
- newtype SubHandlerFor sub master a = SubHandlerFor {
- unSubHandlerFor :: HandlerData sub master -> IO a
Documentation
type SessionMap = Map Text ByteString #
type SaveSession #
Arguments
= SessionMap | The session contents after running the handler |
-> IO [Header] |
newtype SessionBackend #
Constructors
SessionBackend | |
Fields
|
data SessionCookie #
Constructors
SessionCookie !(Either UTCTime ByteString) !ByteString !SessionMap |
Instances
Serialize SessionCookie # | |
Defined in Yesod.Core.Types | |
Read SessionCookie # | |
Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS SessionCookie # readList :: ReadS [SessionCookie] # | |
Show SessionCookie # | |
Defined in Yesod.Core.Types Methods showsPrec :: Int -> SessionCookie -> ShowS # show :: SessionCookie -> String # showList :: [SessionCookie] -> ShowS # |
data ClientSessionDateCache #
Constructors
ClientSessionDateCache | |
Fields
|
Instances
Show ClientSessionDateCache # | |
Defined in Yesod.Core.Types Methods showsPrec :: Int -> ClientSessionDateCache -> ShowS # show :: ClientSessionDateCache -> String # showList :: [ClientSessionDateCache] -> ShowS # | |
Eq ClientSessionDateCache # | |
Defined in Yesod.Core.Types Methods (==) :: ClientSessionDateCache -> ClientSessionDateCache -> Bool # (/=) :: ClientSessionDateCache -> ClientSessionDateCache -> Bool # |
data YesodRequest #
The parsed request information. This type augments the standard WAI
Request
with additional information.
Constructors
YesodRequest | |
Fields
|
data YesodResponse #
An augmented WAI Response
. This can either be a standard Response
,
or a higher-level data structure which Yesod will turn into a Response
.
Constructors
YRWai !Response | |
YRWaiApp !Application | |
YRPlain !Status ![Header] !ContentType !Content !SessionMap |
type RequestBodyContents = ([(Text, Text)], [(Text, FileInfo)]) #
A tuple containing both the POST parameters and submitted files.
Constructors
FileInfo | |
Fields
|
data FileUpload #
Constructors
FileUploadMemory !(BackEnd ByteString) | |
FileUploadDisk !(InternalState -> BackEnd FilePath) | |
FileUploadSource !(BackEnd (ConduitT () ByteString (ResourceT IO) ())) |
How to determine the root of the application for constructing URLs.
Note that future versions of Yesod may add new constructors without bumping
the major version number. As a result, you should not pattern match on
Approot
values.
Constructors
ApprootRelative | No application root. |
ApprootStatic !Text | |
ApprootMaster !(master -> Text) | |
ApprootRequest !(master -> Request -> Text) |
type ResolvedApproot = Text #
data AuthResult #
Constructors
Authorized | |
AuthenticationRequired | |
Unauthorized !Text |
Instances
Read AuthResult # | |
Defined in Yesod.Core.Types Methods readsPrec :: Int -> ReadS AuthResult # readList :: ReadS [AuthResult] # readPrec :: ReadPrec AuthResult # readListPrec :: ReadPrec [AuthResult] # | |
Show AuthResult # | |
Defined in Yesod.Core.Types Methods showsPrec :: Int -> AuthResult -> ShowS # show :: AuthResult -> String # showList :: [AuthResult] -> ShowS # | |
Eq AuthResult # | |
Defined in Yesod.Core.Types |
data ScriptLoadPosition master #
Constructors
BottomOfBody | |
BottomOfHeadBlocking | |
BottomOfHeadAsync !(BottomOfHeadAsync master) |
type BottomOfHeadAsync master #
newtype WaiSubsite #
Wrap up a normal WAI application as a Yesod subsite. Ignore parent site's middleware and isAuthorized.
Constructors
WaiSubsite | |
Fields |
Instances
newtype WaiSubsiteWithAuth #
Like WaiSubsite
, but applies parent site's middleware and isAuthorized.
Since: 1.4.34
Constructors
WaiSubsiteWithAuth | |
Fields |
Instances
ParseRoute WaiSubsiteWithAuth # | |||||
Defined in Yesod.Core.Types Methods parseRoute :: ([Text], [(Text, Text)]) -> Maybe (Route WaiSubsiteWithAuth) # | |||||
RenderRoute WaiSubsiteWithAuth # | |||||
Defined in Yesod.Core.Types Associated Types
Methods renderRoute :: Route WaiSubsiteWithAuth -> ([Text], [(Text, Text)]) # | |||||
YesodSubDispatch WaiSubsiteWithAuth master # | |||||
Defined in Yesod.Core.Class.Dispatch Methods yesodSubDispatch :: YesodSubRunnerEnv WaiSubsiteWithAuth master -> Application # | |||||
Read (Route WaiSubsiteWithAuth) # | |||||
Defined in Yesod.Core.Types | |||||
Show (Route WaiSubsiteWithAuth) # | |||||
Defined in Yesod.Core.Types | |||||
Eq (Route WaiSubsiteWithAuth) # | |||||
Defined in Yesod.Core.Types Methods (==) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # (/=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # | |||||
Ord (Route WaiSubsiteWithAuth) # | |||||
Defined in Yesod.Core.Types Methods compare :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Ordering # (<) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # (<=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # (>) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # (>=) :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Bool # max :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth # min :: Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth -> Route WaiSubsiteWithAuth # | |||||
data Route WaiSubsiteWithAuth # | |||||
Defined in Yesod.Core.Types |
data RunHandlerEnv child site #
Constructors
RunHandlerEnv | |
Fields
|
data HandlerData child site #
Constructors
HandlerData | |
Fields
|
Instances
MonadReader (HandlerData site site) (HandlerFor site) # | |
Defined in Yesod.Core.Types Methods ask :: HandlerFor site (HandlerData site site) # local :: (HandlerData site site -> HandlerData site site) -> HandlerFor site a -> HandlerFor site a # reader :: (HandlerData site site -> a) -> HandlerFor site a # | |
MonadReader (HandlerData child master) (SubHandlerFor child master) # | |
Defined in Yesod.Core.Types Methods ask :: SubHandlerFor child master (HandlerData child master) # local :: (HandlerData child master -> HandlerData child master) -> SubHandlerFor child master a -> SubHandlerFor child master a # reader :: (HandlerData child master -> a) -> SubHandlerFor child master a # |
data YesodRunnerEnv site #
Constructors
YesodRunnerEnv | |
Fields
|
data YesodSubRunnerEnv sub parent #
Constructors
YesodSubRunnerEnv | |
Fields
|
type ParentRunner parent = HandlerFor parent TypedContent -> YesodRunnerEnv parent -> Maybe (Route parent) -> Application #
newtype HandlerFor site a #
A generic handler monad, which can have a different subsite and master site. We define a newtype for better error message.
Constructors
HandlerFor | |
Fields
|
Instances
MonadIO (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods liftIO :: IO a -> HandlerFor site a # | |||||||||
MonadThrow (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> HandlerFor site a # | |||||||||
Applicative (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods pure :: a -> HandlerFor site a # (<*>) :: HandlerFor site (a -> b) -> HandlerFor site a -> HandlerFor site b # liftA2 :: (a -> b -> c) -> HandlerFor site a -> HandlerFor site b -> HandlerFor site c # (*>) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site b # (<*) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site a # | |||||||||
Functor (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods fmap :: (a -> b) -> HandlerFor site a -> HandlerFor site b # (<$) :: a -> HandlerFor site b -> HandlerFor site a # | |||||||||
Monad (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods (>>=) :: HandlerFor site a -> (a -> HandlerFor site b) -> HandlerFor site b # (>>) :: HandlerFor site a -> HandlerFor site b -> HandlerFor site b # return :: a -> HandlerFor site a # | |||||||||
MonadLogger (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> HandlerFor site () # | |||||||||
MonadLoggerIO (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods askLoggerIO :: HandlerFor site (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) # | |||||||||
PrimMonad (HandlerFor site) # | Since: 1.6.7 | ||||||||
Defined in Yesod.Core.Types Associated Types
Methods primitive :: (State# (PrimState (HandlerFor site)) -> (# State# (PrimState (HandlerFor site)), a #)) -> HandlerFor site a # | |||||||||
MonadResource (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> HandlerFor site a # | |||||||||
MonadUnliftIO (HandlerFor site) # | Since: 1.4.38 | ||||||||
Defined in Yesod.Core.Types Methods withRunInIO :: ((forall a. HandlerFor site a -> IO a) -> IO b) -> HandlerFor site b # | |||||||||
MonadHandler (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler Associated Types
Methods liftHandler :: HandlerFor (HandlerSite (HandlerFor site)) a -> HandlerFor site a # liftSubHandler :: SubHandlerFor (SubHandlerSite (HandlerFor site)) (HandlerSite (HandlerFor site)) a -> HandlerFor site a # | |||||||||
MonadReader (HandlerData site site) (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types Methods ask :: HandlerFor site (HandlerData site site) # local :: (HandlerData site site -> HandlerData site site) -> HandlerFor site a -> HandlerFor site a # reader :: (HandlerData site site -> a) -> HandlerFor site a # | |||||||||
type PrimState (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Types | |||||||||
type HandlerSite (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler | |||||||||
type SubHandlerSite (HandlerFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler |
Constructors
GHState | |
Fields
|
type YesodApp = YesodRequest -> ResourceT IO YesodResponse #
An extension of the basic WAI Application
datatype to provide extra
features needed by Yesod. Users should never need to use this directly, as
the HandlerFor
monad and template haskell code should hide it away.
A generic widget, allowing specification of both the subsite and master
site datatypes. While this is simply a WriterT
, we define a newtype for
better error messages.
Constructors
WidgetFor | |
Fields
|
Instances
(site' ~ site, a ~ ()) => ToWidget site' (WidgetFor site a) # | |||||||||
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site') => WidgetFor site a -> m () # | |||||||||
MonadIO (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types | |||||||||
MonadThrow (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> WidgetFor site a # | |||||||||
Applicative (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types Methods pure :: a -> WidgetFor site a # (<*>) :: WidgetFor site (a -> b) -> WidgetFor site a -> WidgetFor site b # liftA2 :: (a -> b -> c) -> WidgetFor site a -> WidgetFor site b -> WidgetFor site c # (*>) :: WidgetFor site a -> WidgetFor site b -> WidgetFor site b # (<*) :: WidgetFor site a -> WidgetFor site b -> WidgetFor site a # | |||||||||
Functor (WidgetFor site) # | |||||||||
Monad (WidgetFor site) # | |||||||||
MonadLogger (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types | |||||||||
MonadLoggerIO (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types | |||||||||
PrimMonad (WidgetFor site) # | Since: 1.6.7 | ||||||||
MonadResource (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> WidgetFor site a # | |||||||||
MonadUnliftIO (WidgetFor site) # | Since: 1.4.38 | ||||||||
Defined in Yesod.Core.Types | |||||||||
MonadHandler (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler Associated Types
Methods liftHandler :: HandlerFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a # liftSubHandler :: SubHandlerFor (SubHandlerSite (WidgetFor site)) (HandlerSite (WidgetFor site)) a -> WidgetFor site a # | |||||||||
MonadWidget (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler Methods liftWidget :: WidgetFor (HandlerSite (WidgetFor site)) a -> WidgetFor site a # | |||||||||
MonadReader (WidgetData site) (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types Methods ask :: WidgetFor site (WidgetData site) # local :: (WidgetData site -> WidgetData site) -> WidgetFor site a -> WidgetFor site a # reader :: (WidgetData site -> a) -> WidgetFor site a # | |||||||||
a ~ () => Monoid (WidgetFor site a) # | |||||||||
a ~ () => Semigroup (WidgetFor site a) # | |||||||||
a ~ () => IsString (WidgetFor site a) # | A For example, in a yesod-scaffold site you could use: getHomeR = do defaultLayout "Widget text" | ||||||||
Defined in Yesod.Core.Types Methods fromString :: String -> WidgetFor site a # | |||||||||
type PrimState (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Types | |||||||||
type HandlerSite (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler | |||||||||
type SubHandlerSite (WidgetFor site) # | |||||||||
Defined in Yesod.Core.Class.Handler |
data WidgetData site #
Constructors
WidgetData | |
Instances
MonadReader (WidgetData site) (WidgetFor site) # | |
Defined in Yesod.Core.Types Methods ask :: WidgetFor site (WidgetData site) # local :: (WidgetData site -> WidgetData site) -> WidgetFor site a -> WidgetFor site a # reader :: (WidgetData site -> a) -> WidgetFor site a # |
tellWidget :: GWData (Route site) -> WidgetFor site () #
newtype CssBuilder #
Newtype wrapper allowing injection of arbitrary content into CSS.
Usage:
toWidget $ CssBuilder "p { color: red }"
Since: 1.1.3
Constructors
CssBuilder | |
Fields |
Instances
ToWidget site CssBuilder # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () # | |
ToWidgetHead site CssBuilder # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => CssBuilder -> m () # | |
ToWidgetMedia site CssBuilder # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> CssBuilder -> m () # | |
render ~ RY site => ToWidget site (render -> CssBuilder) # | |
Defined in Yesod.Core.Widget Methods toWidget :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () # | |
render ~ RY site => ToWidgetHead site (render -> CssBuilder) # | |
Defined in Yesod.Core.Widget Methods toWidgetHead :: (MonadWidget m, HandlerSite m ~ site) => (render -> CssBuilder) -> m () # | |
render ~ RY site => ToWidgetMedia site (render -> CssBuilder) # | |
Defined in Yesod.Core.Widget Methods toWidgetMedia :: (MonadWidget m, HandlerSite m ~ site) => Text -> (render -> CssBuilder) -> m () # |
data PageContent url #
Content for a web page. By providing this datatype, we can easily create generic site templates, which would have the type signature:
PageContent url -> HtmlUrl url
Constructors
PageContent | |
Constructors
ContentBuilder !Builder !(Maybe Int) | The content and optional content length. |
ContentSource !(ConduitT () (Flush Builder) (ResourceT IO) ()) | |
ContentFile !FilePath !(Maybe FilePart) | |
ContentDontEvaluate !Content |
Instances
IsString Content # | |
Defined in Yesod.Core.Types Methods fromString :: String -> Content # | |
ToContent Content # | |
Defined in Yesod.Core.Content | |
ToContent (ContentType, Content) # | |
Defined in Yesod.Core.Content Methods toContent :: (ContentType, Content) -> Content # | |
ToTypedContent (ContentType, Content) # | |
Defined in Yesod.Core.Content Methods toTypedContent :: (ContentType, Content) -> TypedContent # |
data TypedContent #
Constructors
TypedContent !ContentType !Content |
Instances
ToContent TypedContent # | |
Defined in Yesod.Core.Content Methods toContent :: TypedContent -> Content # | |
ToTypedContent TypedContent # | |
Defined in Yesod.Core.Content Methods |
Instances
HasContentType RepJson # | |
Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepJson -> ContentType # | |
ToContent RepJson # | |
Defined in Yesod.Core.Content | |
ToTypedContent RepJson # | |
Defined in Yesod.Core.Content Methods toTypedContent :: RepJson -> TypedContent # |
Instances
HasContentType RepPlain # | |
Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepPlain -> ContentType # | |
ToContent RepPlain # | |
Defined in Yesod.Core.Content | |
ToTypedContent RepPlain # | |
Defined in Yesod.Core.Content Methods toTypedContent :: RepPlain -> TypedContent # |
Instances
HasContentType RepXml # | |
Defined in Yesod.Core.Content Methods getContentType :: Monad m => m RepXml -> ContentType # | |
ToContent RepXml # | |
Defined in Yesod.Core.Content | |
ToTypedContent RepXml # | |
Defined in Yesod.Core.Content Methods toTypedContent :: RepXml -> TypedContent # |
type ContentType = ByteString #
data JSONResponse a where #
Wrapper around types so that Handlers can return a domain type, even when the data will eventually be encoded as JSON. Example usage in a type signature:
postSignupR :: Handler (JSONResponse CreateUserResponse)
And in the implementation:
return $ JSONResponse $ CreateUserResponse userId
Since: 1.6.14
Constructors
JSONResponse :: forall a. ToJSON a => a -> JSONResponse a |
Instances
HasContentType (JSONResponse a) # | |
Defined in Yesod.Core.Content Methods getContentType :: Monad m => m (JSONResponse a) -> ContentType # | |
ToContent (JSONResponse a) # | |
Defined in Yesod.Core.Content Methods toContent :: JSONResponse a -> Content # | |
ToTypedContent (JSONResponse a) # | |
Defined in Yesod.Core.Content Methods toTypedContent :: JSONResponse a -> TypedContent # |
newtype DontFullyEvaluate a #
Prevents a response body from being fully evaluated before sending the request.
Since 1.1.0
Constructors
DontFullyEvaluate | |
Fields
|
Instances
HasContentType a => HasContentType (DontFullyEvaluate a) # | |
Defined in Yesod.Core.Content Methods getContentType :: Monad m => m (DontFullyEvaluate a) -> ContentType # | |
ToContent a => ToContent (DontFullyEvaluate a) # | |
Defined in Yesod.Core.Content Methods toContent :: DontFullyEvaluate a -> Content # | |
ToTypedContent a => ToTypedContent (DontFullyEvaluate a) # | |
Defined in Yesod.Core.Content Methods toTypedContent :: DontFullyEvaluate a -> TypedContent # |
data ErrorResponse #
Responses to indicate some form of an error occurred.
Constructors
NotFound | The requested resource was not found.
Examples of when this occurs include when an incorrect URL is used, or |
InternalError !Text | Some sort of unexpected exception.
If your application uses |
InvalidArgs ![Text] | Indicates some sort of invalid or missing argument, like a missing query parameter or malformed JSON body.
Examples Yesod functions that send this include |
NotAuthenticated | Indicates the user is not logged in.
This is thrown when |
PermissionDenied !Text | Indicates the user doesn't have permission to access the requested resource.
This is thrown when |
BadMethod !Method | Indicates the URL would have been valid if used with a different HTTP method (e.g. a GET was used, but only POST is handled.) HTTP code: 405. |
Instances
NFData ErrorResponse # | |||||
Defined in Yesod.Core.Types Methods rnf :: ErrorResponse -> () # | |||||
Generic ErrorResponse # | |||||
Defined in Yesod.Core.Types Associated Types
| |||||
Show ErrorResponse # | |||||
Defined in Yesod.Core.Types Methods showsPrec :: Int -> ErrorResponse -> ShowS # show :: ErrorResponse -> String # showList :: [ErrorResponse] -> ShowS # | |||||
Eq ErrorResponse # | |||||
Defined in Yesod.Core.Types Methods (==) :: ErrorResponse -> ErrorResponse -> Bool # (/=) :: ErrorResponse -> ErrorResponse -> Bool # | |||||
type Rep ErrorResponse # | |||||
Defined in Yesod.Core.Types type Rep ErrorResponse = D1 ('MetaData "ErrorResponse" "Yesod.Core.Types" "yesod-core-1.6.26.0-B2w9SHR7lnTJbmdWn9hIxe" 'False) ((C1 ('MetaCons "NotFound" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "InternalError" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "InvalidArgs" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [Text])))) :+: (C1 ('MetaCons "NotAuthenticated" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "PermissionDenied" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Text)) :+: C1 ('MetaCons "BadMethod" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Method))))) |
Headers to be added to a Result
.
Constructors
AddCookie !SetCookie | |
DeleteCookie !ByteString !ByteString | name and path |
Header !(CI ByteString) !ByteString | key and value |
newtype UniqueList x #
A diff list that does not directly enforce uniqueness. When creating a widget Yesod will use nub to make it unique.
Constructors
UniqueList ([x] -> [x]) |
Instances
Monoid (UniqueList x) # | |
Defined in Yesod.Core.Types Methods mempty :: UniqueList x # mappend :: UniqueList x -> UniqueList x -> UniqueList x # mconcat :: [UniqueList x] -> UniqueList x # | |
Semigroup (UniqueList x) # | |
Defined in Yesod.Core.Types Methods (<>) :: UniqueList x -> UniqueList x -> UniqueList x # sconcat :: NonEmpty (UniqueList x) -> UniqueList x # stimes :: Integral b => b -> UniqueList x -> UniqueList x # |
Constructors
Script | |
Fields
|
data Stylesheet url #
Constructors
Stylesheet | |
Fields
|
Instances
Show url => Show (Stylesheet url) # | |
Defined in Yesod.Core.Types Methods showsPrec :: Int -> Stylesheet url -> ShowS # show :: Stylesheet url -> String # showList :: [Stylesheet url] -> ShowS # | |
Eq url => Eq (Stylesheet url) # | |
Defined in Yesod.Core.Types Methods (==) :: Stylesheet url -> Stylesheet url -> Bool # (/=) :: Stylesheet url -> Stylesheet url -> Bool # |
newtype Description #
Constructors
Description | |
Fields |
Constructors
GWData | |
Fields
|
data HandlerContents #
Constructors
HCContent !Status !TypedContent | |
HCError !ErrorResponse | |
HCSendFile !ContentType !FilePath !(Maybe FilePart) | |
HCRedirect !Status !Text | |
HCCreated !Text | |
HCWai !Response | |
HCWaiApp !Application |
Instances
Exception HandlerContents # | |
Defined in Yesod.Core.Types Methods toException :: HandlerContents -> SomeException # fromException :: SomeException -> Maybe HandlerContents # displayException :: HandlerContents -> String # backtraceDesired :: HandlerContents -> Bool # | |
Show HandlerContents # | |
Defined in Yesod.Core.Types Methods showsPrec :: Int -> HandlerContents -> ShowS # show :: HandlerContents -> String # showList :: [HandlerContents] -> ShowS # |
Constructors
Logger | |
Fields
|
loggerPutStr :: Logger -> LogStr -> IO () #
newtype SubHandlerFor sub master a #
A handler monad for subsite
Since: 1.6.0
Constructors
SubHandlerFor | |
Fields
|
Instances
MonadIO (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods liftIO :: IO a -> SubHandlerFor child master a # | |||||||||
MonadThrow (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods throwM :: (HasCallStack, Exception e) => e -> SubHandlerFor child master a # | |||||||||
Applicative (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods pure :: a -> SubHandlerFor child master a # (<*>) :: SubHandlerFor child master (a -> b) -> SubHandlerFor child master a -> SubHandlerFor child master b # liftA2 :: (a -> b -> c) -> SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master c # (*>) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master b # (<*) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master a # | |||||||||
Functor (SubHandlerFor sub master) # | |||||||||
Defined in Yesod.Core.Types Methods fmap :: (a -> b) -> SubHandlerFor sub master a -> SubHandlerFor sub master b # (<$) :: a -> SubHandlerFor sub master b -> SubHandlerFor sub master a # | |||||||||
Monad (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods (>>=) :: SubHandlerFor child master a -> (a -> SubHandlerFor child master b) -> SubHandlerFor child master b # (>>) :: SubHandlerFor child master a -> SubHandlerFor child master b -> SubHandlerFor child master b # return :: a -> SubHandlerFor child master a # | |||||||||
MonadLogger (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods monadLoggerLog :: ToLogStr msg => Loc -> LogSource -> LogLevel -> msg -> SubHandlerFor child master () # | |||||||||
MonadLoggerIO (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods askLoggerIO :: SubHandlerFor child master (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) # | |||||||||
MonadResource (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods liftResourceT :: ResourceT IO a -> SubHandlerFor child master a # | |||||||||
MonadUnliftIO (SubHandlerFor child master) # | Since: 1.4.38 | ||||||||
Defined in Yesod.Core.Types Methods withRunInIO :: ((forall a. SubHandlerFor child master a -> IO a) -> IO b) -> SubHandlerFor child master b # | |||||||||
MonadHandler (SubHandlerFor sub master) # | |||||||||
Defined in Yesod.Core.Class.Handler Associated Types
Methods liftHandler :: HandlerFor (HandlerSite (SubHandlerFor sub master)) a -> SubHandlerFor sub master a # liftSubHandler :: SubHandlerFor (SubHandlerSite (SubHandlerFor sub master)) (HandlerSite (SubHandlerFor sub master)) a -> SubHandlerFor sub master a # | |||||||||
MonadReader (HandlerData child master) (SubHandlerFor child master) # | |||||||||
Defined in Yesod.Core.Types Methods ask :: SubHandlerFor child master (HandlerData child master) # local :: (HandlerData child master -> HandlerData child master) -> SubHandlerFor child master a -> SubHandlerFor child master a # reader :: (HandlerData child master -> a) -> SubHandlerFor child master a # | |||||||||
type HandlerSite (SubHandlerFor sub master) # | |||||||||
Defined in Yesod.Core.Class.Handler | |||||||||
type SubHandlerSite (SubHandlerFor sub master) # | |||||||||
Defined in Yesod.Core.Class.Handler |