mig-0.2.1.0: Build lightweight and composable servers
Safe HaskellSafe-Inferred
LanguageGHC2021

Mig.Core.Class.Route

Description

Creation of routes from functions. A route is a handler function for single path of the server.

Synopsis

Documentation

data Route m Source #

Route contains API-info and how to run it

Constructors

Route 

Fields

Instances

Instances details
MonadIO m => ToRoute (Route m) Source # 
Instance details

Defined in Mig.Core.Class.Route

class MonadIO (MonadOf a) => ToRoute a where Source #

Values that represent routes. A route is a function of arbitrary number of arguments. Where each argument is one of the special newtype-wrappers that read type-safe information from HTTP-request and return type of the route function is a value of something convertible to HTTP-request.

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

Update API info

toRouteFun :: a -> ServerFun (MonadOf a) Source #

Convert to route

Instances

Instances details
MonadIO m => ToRoute (Route m) Source # 
Instance details

Defined in Mig.Core.Class.Route

(ToSchema a, FromReqBody media a, ToRoute b) => ToRoute (Body media a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: (Body media a -> b) -> ServerFun (MonadOf (Body media a -> b)) Source #

(FromHttpApiData a, ToParamSchema a, ToRoute b, KnownSymbol sym) => ToRoute (Capture sym a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: (Capture sym a -> b) -> ServerFun (MonadOf (Capture sym a -> b)) Source #

(FromForm a, ToRoute b) => ToRoute (Cookie a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

ToRoute b => ToRoute (FullPathInfo -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

(FromHttpApiData a, ToParamSchema a, ToRoute b, KnownSymbol sym) => ToRoute (Header sym a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: (Header sym a -> b) -> ServerFun (MonadOf (Header sym a -> b)) Source #

ToRoute b => ToRoute (IsSecure -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

(FromHttpApiData a, ToParamSchema a, ToRoute b, KnownSymbol sym) => ToRoute (Optional sym a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: (Optional sym a -> b) -> ServerFun (MonadOf (Optional sym a -> b)) Source #

(FromHttpApiData a, ToParamSchema a, ToRoute b, KnownSymbol sym) => ToRoute (OptionalHeader sym a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

ToRoute b => ToRoute (PathInfo -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

(FromHttpApiData a, ToParamSchema a, ToRoute b, KnownSymbol sym) => ToRoute (Query sym a -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: (Query sym a -> b) -> ServerFun (MonadOf (Query sym a -> b)) Source #

(ToRoute b, KnownSymbol sym) => ToRoute (QueryFlag sym -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

ToRoute b => ToRoute (RawRequest -> b) Source # 
Instance details

Defined in Mig.Core.Class.Route

(MonadIO m, IsResp a, IsMethod method) => ToRoute (Send method m a) Source # 
Instance details

Defined in Mig.Core.Class.Route

Methods

toRouteInfo :: RouteInfo -> RouteInfo Source #

toRouteFun :: Send method m a -> ServerFun (MonadOf (Send method m a)) Source #

toRoute :: forall a. ToRoute a => a -> Route (MonadOf a) Source #

converts route-like value to route.