@@ -42,20 +42,14 @@ import Data.OpenApi
42import Data.OpenApi.Internal.ParamSchema
42import Data.OpenApi.Internal.ParamSchema
43import Data.OpenApi.Internal.Schema
43import Data.OpenApi.Internal.Schema
44import Data.Proxy
44import Data.Proxy
45+import Data.Text (Text)
46+import qualified Data.Text as T
45import Data.Typeable
47import Data.Typeable
46import Deriving.Aeson
48import Deriving.Aeson
47import GHC.Generics
49import GHC.Generics
48import GHC.TypeLits
50import GHC.TypeLits
50−-- $setup
52+data Description (desc :: Symbol) = Description
51−-- >>> import qualified Data.Yaml
52−-- >>> import qualified Data.ByteString.Char8
54−#ifdef SERVANT_DESCRIPTION
57−import Data.Text (Text)
58−import qualified Data.Text as T
60instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
54instance (AesonOptions xs) => AesonOptions (Description f ': xs) where
61 aesonOptions = aesonOptions @xs
55 aesonOptions = aesonOptions @xs
@@ -66,7 +60,9 @@ instance KnownSymbol t => OpenApiOptionModifier (Description t) where
66toTextLine :: forall s. KnownSymbol s => Text
60toTextLine :: forall s. KnownSymbol s => Text
67toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
61toTextLine = "\n\n" <> T.pack (symbolVal (Proxy @s))
64+-- >>> import qualified Data.Yaml
65+-- >>> import qualified Data.ByteString.Char8
71type CustomOpenApi = CustomJSON
67type CustomOpenApi = CustomJSON
@@ -106,8 +102,10 @@ instance OpenApiOptionModifier UnwrapUnaryRecords where
107instance OpenApiOptionModifier OmitNothingFields
103instance OpenApiOptionModifier OmitNothingFields
105+#if MIN_VERSION_deriving_aeson(0,2,4)
109instance OpenApiOptionModifier RejectUnknownFields where
106instance OpenApiOptionModifier RejectUnknownFields where
110 openApiSchemaModifier = schema . additionalProperties .~ Just (AdditionalPropertiesAllowed False)
107 openApiSchemaModifier = schema . additionalProperties .~ Just (AdditionalPropertiesAllowed False)
112instance StringModifier f => OpenApiOptionModifier (FieldLabelModifier f) where
110instance StringModifier f => OpenApiOptionModifier (FieldLabelModifier f) where
113 openApiOptionsModifier o = o {fieldLabelModifier = getStringModifier @f}
111 openApiOptionsModifier o = o {fieldLabelModifier = getStringModifier @f}