snap-extras-0.6: A collection of useful helpers and utilities for Snap web applications.

Safe HaskellNone

Snap.Extras.CoreUtils

Synopsis

Documentation

finishEarly :: MonadSnap m => Int -> ByteString -> m bSource

Discard anything after this and return given status code to HTTP client immediately.

badReq :: MonadSnap m => ByteString -> m bSource

Finish early with error code 400

notFound :: MonadSnap m => ByteString -> m bSource

Finish early with error code 404

serverError :: MonadSnap m => ByteString -> m bSource

Finish early with error code 500

plainResponse :: MonadSnap m => m ()Source

Mark response as 'text/plain'

jsonResponse :: MonadSnap m => m ()Source

Mark response as 'application/json'

jsResponse :: MonadSnap m => m ()Source

Mark response as 'application/javascript'

easyLog :: (Show t, MonadSnap m) => String -> t -> m ()Source

Easier debug logging into error log. First argument is a category/namespace and the second argument is anything that has a Show instance.

getParam' :: MonadSnap m => ByteString -> m (Maybe ByteString)Source

Alternate version of getParam that considers empty string Nothing

reqParam :: MonadSnap m => ByteString -> m ByteStringSource

Require that a parameter is present or terminate early.

readParam :: (MonadSnap m, Read a) => ByteString -> m (Maybe a)Source

Read a parameter from request. Be sure it is readable if it's there, or else this will raise an error.

readMayParam :: (MonadSnap m, Read a) => ByteString -> m (Maybe a)Source

Try to read a parameter from request. Computation may fail because the param is not there, or because it can't be read.

redirectReferer :: MonadSnap m => m bSource

Redirects back to the refering page. If there is no Referer header, then redirect to /.

redirectRefererFunc :: MonadSnap m => (Maybe ByteString -> ByteString) -> m bSource

Redirects back to the refering page. If there is no Referer header, then redirect to /.

dirify :: MonadSnap m => m ()Source

If the current rqURI does not have a trailing slash, then redirect to the same page with a slash added.

undirify :: MonadSnap m => m ()Source

If the current rqURI has a trailing slash, then redirect to the same page with no trailing slash.

fromMaybeM :: Monad m => m a -> m (Maybe a) -> m aSource

Evaluates an action that returns a Maybe and

(-/-) :: ByteString -> ByteString -> ByteStringSource

Concatenates two URL segments with a / between them. To prevent double slashes, all trailing slashes are removed from the first path and all leading slashes are removed from the second path.