@@ -39,17 +39,22 @@ where
39import Control.Lens
39import Control.Lens
40import qualified Data.Aeson.Types as A
40import qualified Data.Aeson.Types as A
41import Data.OpenApi
41import Data.OpenApi
42−import Data.OpenApi.Internal.ParamSchema
43import Data.OpenApi.Internal.Schema
42import Data.OpenApi.Internal.Schema
44import Data.Proxy
43import Data.Proxy
45−import Data.Text (Text)
46−import qualified Data.Text as T
47import Data.Typeable
44import Data.Typeable
48import Deriving.Aeson
45import Deriving.Aeson
49import GHC.Generics
46import GHC.Generics
50import GHC.TypeLits
47import GHC.TypeLits
52−data Description (desc :: Symbol) = Description
49+-- $setup
50+-- >>> import qualified Data.Yaml
51+-- >>> import qualified Data.ByteString.Char8
53+#ifdef SERVANT_DESCRIPTION
56+import Data.Text (Text)
57+import qualified Data.Text as T
54instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
59instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
55 aesonOptions = aesonOptions @xs
60 aesonOptions = aesonOptions @xs
@@ -60,9 +65,7 @@ instance KnownSymbol t => OpenApiOptionModifier (Description t) where
60toTextLine :: forall s. KnownSymbol s => Text
65toTextLine :: forall s. KnownSymbol s => Text
61toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
66toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
64−-- >>> import qualified Data.Yaml
65−-- >>> import qualified Data.ByteString.Char8
67type CustomOpenApi = CustomJSON
70type CustomOpenApi = CustomJSON
@@ -74,13 +77,6 @@ instance
74 openApiSchemaModifier @xs
77 openApiSchemaModifier @xs
75 <$> genericDeclareNamedSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
78 <$> genericDeclareNamedSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
78− (OpenApiOptionModifier xs, GToParamSchema (Rep x), Generic x) =>
79− ToParamSchema (CustomJSON (xs :: k) x)
81− toParamSchema Proxy =
82− genericToParamSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
84class OpenApiOptionModifier x where
80class OpenApiOptionModifier x where
85 openApiOptionsModifier :: SchemaOptions -> SchemaOptions
81 openApiOptionsModifier :: SchemaOptions -> SchemaOptions
86 openApiOptionsModifier = id
82 openApiOptionsModifier = id