trasa-form-0.4: generate forms using lucid, ditto and trasa

Safe HaskellNone
LanguageHaskell2010

Trasa.Form

Contents

Synopsis

Documentation

newtype FormData a Source #

Constructors

FormData 
Instances
Eq (FormData a) Source # 
Instance details

Defined in Trasa.Form

Methods

(==) :: FormData a -> FormData a -> Bool #

(/=) :: FormData a -> FormData a -> Bool #

Ord (FormData a) Source # 
Instance details

Defined in Trasa.Form

Methods

compare :: FormData a -> FormData a -> Ordering #

(<) :: FormData a -> FormData a -> Bool #

(<=) :: FormData a -> FormData a -> Bool #

(>) :: FormData a -> FormData a -> Bool #

(>=) :: FormData a -> FormData a -> Bool #

max :: FormData a -> FormData a -> FormData a #

min :: FormData a -> FormData a -> FormData a #

Show (FormData a) Source # 
Instance details

Defined in Trasa.Form

Methods

showsPrec :: Int -> FormData a -> ShowS #

show :: FormData a -> String #

showList :: [FormData a] -> ShowS #

Semigroup (FormData a) Source # 
Instance details

Defined in Trasa.Form

Methods

(<>) :: FormData a -> FormData a -> FormData a #

sconcat :: NonEmpty (FormData a) -> FormData a #

stimes :: Integral b => b -> FormData a -> FormData a #

Monoid (FormData a) Source # 
Instance details

Defined in Trasa.Form

Methods

mempty :: FormData a #

mappend :: FormData a -> FormData a -> FormData a #

mconcat :: [FormData a] -> FormData a #

class FormError input err where #

A Class to lift a CommonFormError into an application-specific error type

Methods

commonFormError :: CommonFormError input -> err #

newtype TrasaFormT m a Source #

a newtype over TrasaT which allows it to have different environments for GET and POST requests

Constructors

TrasaFormT 
Instances
MonadTrans TrasaFormT Source # 
Instance details

Defined in Trasa.Form

Methods

lift :: Monad m => m a -> TrasaFormT m a #

Monad m => MonadReader FormType (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

ask :: TrasaFormT m FormType #

local :: (FormType -> FormType) -> TrasaFormT m a -> TrasaFormT m a #

reader :: (FormType -> a) -> TrasaFormT m a #

Monad m => Monad (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

(>>=) :: TrasaFormT m a -> (a -> TrasaFormT m b) -> TrasaFormT m b #

(>>) :: TrasaFormT m a -> TrasaFormT m b -> TrasaFormT m b #

return :: a -> TrasaFormT m a #

fail :: String -> TrasaFormT m a #

Functor m => Functor (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

fmap :: (a -> b) -> TrasaFormT m a -> TrasaFormT m b #

(<$) :: a -> TrasaFormT m b -> TrasaFormT m a #

Monad m => Applicative (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

pure :: a -> TrasaFormT m a #

(<*>) :: TrasaFormT m (a -> b) -> TrasaFormT m a -> TrasaFormT m b #

liftA2 :: (a -> b -> c) -> TrasaFormT m a -> TrasaFormT m b -> TrasaFormT m c #

(*>) :: TrasaFormT m a -> TrasaFormT m b -> TrasaFormT m b #

(<*) :: TrasaFormT m a -> TrasaFormT m b -> TrasaFormT m a #

(Alternative m, Monad m) => Alternative (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

empty :: TrasaFormT m a #

(<|>) :: TrasaFormT m a -> TrasaFormT m a -> TrasaFormT m a #

some :: TrasaFormT m a -> TrasaFormT m [a] #

many :: TrasaFormT m a -> TrasaFormT m [a] #

Monad m => Environment (TrasaFormT m) QueryParam Source # 
Instance details

Defined in Trasa.Form

data FormType Source #

a GET request, or a POST request which may hav the untyped FormData

Constructors

Get 
Post (Maybe (HashMap Text [Text])) 
Instances
Monad m => MonadReader FormType (TrasaFormT m) Source # 
Instance details

Defined in Trasa.Form

Methods

ask :: TrasaFormT m FormType #

local :: (FormType -> FormType) -> TrasaFormT m a -> TrasaFormT m a #

reader :: (FormType -> a) -> TrasaFormT m a #

type TrasaForm a = Form (TrasaFormT IO) QueryParam TrasaFormError (Html ()) a Source #

a type alias for the most common type of form using trasa-form

data TrasaFormError Source #

trasa-form's form error type: may have a CommonFormError, will have an error message

Instances
Show TrasaFormError Source # 
Instance details

Defined in Trasa.Form

IsString TrasaFormError Source # 
Instance details

Defined in Trasa.Form

ToHtml TrasaFormError Source # 
Instance details

Defined in Trasa.Form

Methods

toHtml :: Monad m => TrasaFormError -> HtmlT m () #

toHtmlRaw :: Monad m => TrasaFormError -> HtmlT m () #

FormError QueryParam TrasaFormError Source # 
Instance details

Defined in Trasa.Form

bodyFormData :: BodyCodec (FormData a) Source #

this is a BodyCodec, the intended use is to get the request body without using wai black magic to pass to POST forms

liftParser :: (Text -> Either Text a) -> QueryParam -> Either TrasaFormError a Source #

lift a function which parses Text into a function which parses a QueryParam

liftToForm :: Monad m => TrasaT m a -> TrasaFormT m a Source #

lift a TrasaT to a TrasaFormT

reform Source #

Arguments

:: (MonadIO m, Monoid view) 
=> ([(Text, Text)] -> view -> view)

wrap raw form html inside a form tag

-> Text

form name prefix

-> Form (TrasaFormT m) QueryParam err view a

the formlet

-> TrasaT m (Result err a, view) 

run a Form with the GET method

reformPost Source #

Arguments

:: (MonadIO m, Monoid view) 
=> ([(Text, Text)] -> view -> view)

wrap raw form html inside a form tag

-> Text

form name prefix

-> Maybe (FormData a) 
-> Form (TrasaFormT m) QueryParam err view a

the formlet

-> TrasaT m (Result err a, view) 

run a Form with the POST method

trasaFormView :: Monad m => Text -> Form (TrasaFormT m) QueryParam err view a -> TrasaT m view Source #

viewForm helper function

textError :: Text -> TrasaFormError Source #

convert Text to a TrasaFormError

Orphan instances