servant-swagger-1.0.2: Generate Swagger specification for your servant API.

LicenseBSD3
MaintainerNickolay Kudasov <nickolay@getshoptv.com>
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Servant.Swagger.TypeLevel

Description

Useful type families for servant APIs.

Synopsis

Documentation

type family IsSubAPI sub api :: Constraint Source

Check whether sub is a sub API of api.

Equations

IsSubAPI sub api = AllIsElem (EndpointsList sub) api 

type family EndpointsList api Source

Build a list of endpoints from an API.

type family BodyTypes c api :: [*] Source

Extract a list of unique "body" types for a specific content-type from a servant API.

Equations

BodyTypes c (Delete cs (Headers hdrs a)) = AddBodyType c cs a `[]` 
BodyTypes c (Get cs (Headers hdrs a)) = AddBodyType c cs a `[]` 
BodyTypes c (Patch cs (Headers hdrs a)) = AddBodyType c cs a `[]` 
BodyTypes c (Post cs (Headers hdrs a)) = AddBodyType c cs a `[]` 
BodyTypes c (Put cs (Headers hdrs a)) = AddBodyType c cs a `[]` 
BodyTypes c (Delete cs a) = AddBodyType c cs a `[]` 
BodyTypes c (Get cs a) = AddBodyType c cs a `[]` 
BodyTypes c (Patch cs a) = AddBodyType c cs a `[]` 
BodyTypes c (Post cs a) = AddBodyType c cs a `[]` 
BodyTypes c (Put cs a) = AddBodyType c cs a `[]` 
BodyTypes c (ReqBody cs a :> api) = AddBodyType c cs a (BodyTypes c api) 
BodyTypes c (e :> api) = BodyTypes c api 
BodyTypes c (a :<|> b) = Merge (BodyTypes c a) (BodyTypes c b) 
BodyTypes c api = `[]`