{-# LANGUAGE ConstraintKinds #-}
module Prolude.Swagger
(
Swagger.SwaggerType(..)
, SwaggerToSchema
, SwaggerToParamSchema
, defaultDeclareNamedSchema
)
where
import qualified Data.Swagger as Swagger
import qualified Data.Swagger.Declare as Swagger
import qualified Data.Swagger.Internal.Schema as Swagger
import qualified Data.Swagger.Internal.TypeShape as Swagger
type SwaggerToParamSchema = Swagger.ToParamSchema
type SwaggerToSchema = Swagger.ToSchema
defaultDeclareNamedSchema
:: Applicative f => (Swagger.Schema -> Swagger.Schema) -> proxy a -> f Swagger.NamedSchema
defaultDeclareNamedSchema :: (Schema -> Schema) -> proxy a -> f NamedSchema
defaultDeclareNamedSchema Schema -> Schema
f = f NamedSchema -> proxy a -> f NamedSchema
forall a b. a -> b -> a
const (f NamedSchema -> proxy a -> f NamedSchema)
-> (Schema -> f NamedSchema) -> Schema -> proxy a -> f NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NamedSchema -> f NamedSchema
forall (f :: * -> *) a. Applicative f => a -> f a
pure (NamedSchema -> f NamedSchema)
-> (Schema -> NamedSchema) -> Schema -> f NamedSchema
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe Text -> Schema -> NamedSchema
Swagger.NamedSchema Maybe Text
forall a. Maybe a
Nothing (Schema -> proxy a -> f NamedSchema)
-> Schema -> proxy a -> f NamedSchema
forall a b. (a -> b) -> a -> b
$ Schema -> Schema
f Schema
forall a. Monoid a => a
mempty