mig-extra-0.1.1.0: Extra utils for Mig core library
Safe HaskellSafe-Inferred
LanguageGHC2021

Mig.Extra.Server.Json

Description

Json servers

Synopsis

Http verbs

type Get (m :: k -> Type) (a :: k) = Send GET m a #

Get request

type Post (m :: k -> Type) (a :: k) = Send POST m a #

Post request

type Put (m :: k -> Type) (a :: k) = Send PUT m a #

Put request

type Delete (m :: k -> Type) (a :: k) = Send DELETE m a #

Delete request

type Patch (m :: k -> Type) (a :: k) = Send PATCH m a #

Path request

type Options (m :: k -> Type) (a :: k) = Send OPTIONS m a #

Options request

type Head (m :: k -> Type) (a :: k) = Send HEAD m a #

Head request

type Trace (m :: k -> Type) (a :: k) = Send TRACE m a #

trace request

Json request body

newtype Body a Source #

Special case for request Body with JSON.

Constructors

Body a 

Instances

Instances details
(FromJSON a, ToSchema a, ToPlugin b) => ToPlugin (Body a -> b) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

toPluginInfo :: RouteInfo -> RouteInfo #

toPluginFun :: (Body a -> b) -> ServerFun (MonadOf (Body a -> b)) -> ServerFun (MonadOf (Body a -> b)) #

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

Defined in Mig.Extra.Server.Json

Methods

toRouteInfo :: RouteInfo -> RouteInfo #

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

FromClient b => FromClient (Body a -> b) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Associated Types

type ClientResult (Body a -> b) #

Methods

fromClient :: (Body a -> b) -> ClientResult (Body a -> b) #

(ToJSON a, ToClient b) => ToClient (Body a -> b) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

toClient :: forall (m :: Type -> Type). Server m -> Body a -> b #

clientArity :: Int #

type ClientResult (Body a -> b) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type ClientResult (Body a -> b) = ClientResult (Body Json a -> b)

Json response

data Resp a Source #

Instances

Instances details
Functor Resp Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

fmap :: (a -> b) -> Resp a -> Resp b #

(<$) :: a -> Resp b -> Resp a #

Show a => Show (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

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

show :: Resp a -> String #

showList :: [Resp a] -> ShowS #

Eq a => Eq (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

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

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

ToJSON a => IsResp (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Associated Types

type RespBody (Resp a) #

type RespError (Resp a) #

type RespMedia (Resp a) #

type RespBody (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type RespBody (Resp a) = RespBody (Resp Json a)
type RespError (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type RespMedia (Resp a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

data RespOr err a Source #

Instances

Instances details
Functor (RespOr err) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

fmap :: (a -> b) -> RespOr err a -> RespOr err b #

(<$) :: a -> RespOr err b -> RespOr err a #

(Show err, Show a) => Show (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

showsPrec :: Int -> RespOr err a -> ShowS #

show :: RespOr err a -> String #

showList :: [RespOr err a] -> ShowS #

(Eq err, Eq a) => Eq (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Methods

(==) :: RespOr err a -> RespOr err a -> Bool #

(/=) :: RespOr err a -> RespOr err a -> Bool #

(ToJSON err, ToJSON a) => IsResp (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

Associated Types

type RespBody (RespOr err a) #

type RespError (RespOr err a) #

type RespMedia (RespOr err a) #

Methods

ok :: RespBody (RespOr err a) -> RespOr err a #

bad :: Status -> RespError (RespOr err a) -> RespOr err a #

noContent :: Status -> RespOr err a #

addHeaders :: ResponseHeaders -> RespOr err a -> RespOr err a #

getHeaders :: RespOr err a -> ResponseHeaders #

setStatus :: Status -> RespOr err a -> RespOr err a #

getRespBody :: RespOr err a -> Maybe (RespBody (RespOr err a)) #

getRespError :: RespOr err a -> Maybe (RespError (RespOr err a)) #

getStatus :: RespOr err a -> Status #

setMedia :: MediaType -> RespOr err a -> RespOr err a #

getMedia :: MediaType #

toResponse :: RespOr err a -> Response #

type RespBody (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type RespBody (RespOr err a) = RespBody (RespOr Json err a)
type RespError (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type RespError (RespOr err a) = RespError (RespOr Json err a)
type RespMedia (RespOr err a) Source # 
Instance details

Defined in Mig.Extra.Server.Json

type RespMedia (RespOr err a) = RespMedia (RespOr Json err a)

re-exports