magicbane-0.1.3: A web framework that integrates Servant, ClassyPrelude, EKG, fast-logger, wai-cli…

Safe HaskellNone
LanguageHaskell2010

Magicbane.App

Description

Extends Servant with context. Basically wrapping Servant in a ReaderT of your type. Which should be a tuple of all your moudles and configs and stuff, so that the Data.Has module would let you access these items by type.

Synopsis

Documentation

newtype MagicbaneApp β α Source #

Constructors

MagicbaneApp 

Fields

Instances

MonadReader β (MagicbaneApp β) Source # 

Methods

ask :: MagicbaneApp β β #

local :: (β -> β) -> MagicbaneApp β a -> MagicbaneApp β a #

reader :: (β -> a) -> MagicbaneApp β a #

MonadBaseControl IO (MagicbaneApp β) Source # 

Associated Types

type StM (MagicbaneApp β :: * -> *) a :: * #

Methods

liftBaseWith :: (RunInBase (MagicbaneApp β) IO -> IO a) -> MagicbaneApp β a #

restoreM :: StM (MagicbaneApp β) a -> MagicbaneApp β a #

MonadBase IO (MagicbaneApp β) Source # 

Methods

liftBase :: IO α -> MagicbaneApp β α #

MonadError ServantErr (MagicbaneApp β) Source # 
Monad (MagicbaneApp β) Source # 

Methods

(>>=) :: MagicbaneApp β a -> (a -> MagicbaneApp β b) -> MagicbaneApp β b #

(>>) :: MagicbaneApp β a -> MagicbaneApp β b -> MagicbaneApp β b #

return :: a -> MagicbaneApp β a #

fail :: String -> MagicbaneApp β a #

Functor (MagicbaneApp β) Source # 

Methods

fmap :: (a -> b) -> MagicbaneApp β a -> MagicbaneApp β b #

(<$) :: a -> MagicbaneApp β b -> MagicbaneApp β a #

Applicative (MagicbaneApp β) Source # 

Methods

pure :: a -> MagicbaneApp β a #

(<*>) :: MagicbaneApp β (a -> b) -> MagicbaneApp β a -> MagicbaneApp β b #

(*>) :: MagicbaneApp β a -> MagicbaneApp β b -> MagicbaneApp β b #

(<*) :: MagicbaneApp β a -> MagicbaneApp β b -> MagicbaneApp β a #

MonadIO (MagicbaneApp β) Source # 

Methods

liftIO :: IO a -> MagicbaneApp β a #

MonadCatch (MagicbaneApp β) Source # 

Methods

catch :: Exception e => MagicbaneApp β a -> (e -> MagicbaneApp β a) -> MagicbaneApp β a #

MonadThrow (MagicbaneApp β) Source # 

Methods

throwM :: Exception e => e -> MagicbaneApp β a #

type StM (MagicbaneApp β) α Source # 
type StM (MagicbaneApp β) α = StM (ReaderT * β Handler) α

magicbaneApp :: (HasServer * api ([] *), HasServer * api context) => Proxy * api -> Context context -> t -> ServerT * api (MagicbaneApp t) -> Application Source #

Constructs a WAI application from an API definition, a Servant context (used for auth mainly), the app context and the actual action handlers.

askObj :: (Has β α, MonadReader α μ) => μ β Source #

Gets a value of any type from the context.

askOpt :: (Has β α, MonadReader α μ) => (β -> ψ) -> μ ψ Source #

Gets a thing from a value of any type from the context. (Useful for configuration fields.)