@@ -39,17 +39,22 @@ where
3939import Control.Lens
4040import qualified Data.Aeson.Types as A
4141import Data.OpenApi
42−import Data.OpenApi.Internal.ParamSchema
4342import Data.OpenApi.Internal.Schema
4443import Data.Proxy
45−import Data.Text (Text)
46−import qualified Data.Text as T
4744import Data.Typeable
4845import Deriving.Aeson
4946import GHC.Generics
5047import GHC.TypeLits
5148
52−data Description (desc :: Symbol) = Description
49+-- $setup
50+-- >>> import qualified Data.Yaml
51+-- >>> import qualified Data.ByteString.Char8
52+
53+#ifdef SERVANT_DESCRIPTION
54+
55+import Servant.API
56+import Data.Text (Text)
57+import qualified Data.Text as T
5358
5459instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
5560 aesonOptions = aesonOptions @xs
@@ -60,9 +65,7 @@ instance KnownSymbol t => OpenApiOptionModifier (Description t) where
6065toTextLine :: forall s. KnownSymbol s => Text
6166toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
6267
63−-- $setup
64−-- >>> import qualified Data.Yaml
65−-- >>> import qualified Data.ByteString.Char8
68+#endif
6669
6770type CustomOpenApi = CustomJSON
6871
@@ -74,13 +77,6 @@ instance
7477 openApiSchemaModifier @xs
7578 <$> genericDeclareNamedSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
7679
77−instance
78− (OpenApiOptionModifier xs, GToParamSchema (Rep x), Generic x) =>
79− ToParamSchema (CustomJSON (xs :: k) x)
80− where
81− toParamSchema Proxy =
82− genericToParamSchema (openApiOptionsModifier @xs defaultSchemaOptions) (Proxy @x)
83−
8480class OpenApiOptionModifier x where
8581 openApiOptionsModifier :: SchemaOptions -> SchemaOptions
8682 openApiOptionsModifier = id
@@ -102,10 +98,8 @@ instance OpenApiOptionModifier UnwrapUnaryRecords where
10298
10399instance OpenApiOptionModifier OmitNothingFields
104100
105−#if MIN_VERSION_deriving_aeson(0,2,4)
106101instance OpenApiOptionModifier RejectUnknownFields where
107102 openApiSchemaModifier = schema . additionalProperties .~ Just (AdditionalPropertiesAllowed False)
108−#endif
109103
110104instance StringModifier f => OpenApiOptionModifier (FieldLabelModifier f) where
111105 openApiOptionsModifier o = o {fieldLabelModifier = getStringModifier @f}