@@ -627,12 +627,18 @@ instance ToSchema UUID.UUID where
627 declareNamedSchema p = pure $ named "UUID" $ paramSchemaToSchema p
627 declareNamedSchema p = pure $ named "UUID" $ paramSchemaToSchema p
628 & example ?~ toJSON (UUID.toText UUID.nil)
628 & example ?~ toJSON (UUID.toText UUID.nil)
630−instance (ToSchema a, Typeable a, ToSchema b, Typeable b) => ToSchema (a, b)
630+instance (ToSchema a, Typeable a, ToSchema b, Typeable b) => ToSchema (a, b) where
631+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
631−instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c) => ToSchema (a, b, c)
632+instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c) => ToSchema (a, b, c) where
633+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
632−instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d) => ToSchema (a, b, c, d)
634+instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d) => ToSchema (a, b, c, d) where
635+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
633−instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e) => ToSchema (a, b, c, d, e)
636+instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e) => ToSchema (a, b, c, d, e) where
637+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
634−instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e, ToSchema f, Typeable f) => ToSchema (a, b, c, d, e, f)
638+instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e, ToSchema f, Typeable f) => ToSchema (a, b, c, d, e, f) where
639+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
635−instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e, ToSchema f, Typeable f, ToSchema g, Typeable g) => ToSchema (a, b, c, d, e, f, g)
640+instance (ToSchema a, Typeable a, ToSchema b, Typeable b, ToSchema c, Typeable c, ToSchema d, Typeable d, ToSchema e, Typeable e, ToSchema f, Typeable f, ToSchema g, Typeable g) => ToSchema (a, b, c, d, e, f, g) where
641+ declareNamedSchema = fmap unname . genericDeclareNamedSchema defaultSchemaOptions
637timeSchema :: T.Text -> Schema
643timeSchema :: T.Text -> Schema
638timeSchema fmt = mempty
644timeSchema fmt = mempty
@@ -864,8 +870,12 @@ genericDeclareSchema opts proxy = _namedSchemaSchema <$> genericDeclareNamedSche
864genericDeclareNamedSchema :: forall a. (Generic a, GToSchema (Rep a), Typeable a) =>
870genericDeclareNamedSchema :: forall a. (Generic a, GToSchema (Rep a), Typeable a) =>
865 SchemaOptions -> Proxy a -> Declare (Definitions Schema) NamedSchema
871 SchemaOptions -> Proxy a -> Declare (Definitions Schema) NamedSchema
866genericDeclareNamedSchema opts _ =
872genericDeclareNamedSchema opts _ =
867− rename (Just tName) <$> gdeclareNamedSchema opts (Proxy :: Proxy (Rep a)) mempty
873+ rename (Just $ T.pack name) <$> gdeclareNamedSchema opts (Proxy :: Proxy (Rep a)) mempty
868− where tName = T.replace " " "_" $ T.pack $ show $ typeRep @a
874+ where
877+ orig = fmap unspace $ show $ typeRep @a
878+ name = datatypeNameModifier opts orig
871-- | Derive a 'Generic'-based name for a datatype and assign it to a given 'Schema'.
881-- | Derive a 'Generic'-based name for a datatype and assign it to a given 'Schema'.
@@ -1109,7 +1119,7 @@ data Proxy3 a b c = Proxy3
1109-- >>> toNamedSchema @(Foo (Foo T.Text)) Proxy ^. name
1119-- >>> toNamedSchema @(Foo (Foo T.Text)) Proxy ^. name
1110-- Just "Foo_(Foo_Text)"
1120-- Just "Foo_(Foo_Text)"
1111class ToSchema1 (f :: * -> *) where
1121class ToSchema1 (f :: * -> *) where
1112− declareNamedSchema1 :: (Generic (f a), GToSchema (Rep (f a)), ToSchema a) => Proxy f -> Proxy a -> Declare (Definitions Schema) NamedSchema
1122+ declareNamedSchema1 :: (Generic (f a), GToSchema (Rep (f a)), ToSchema a, Typeable a) => Proxy f -> Proxy a -> Declare (Definitions Schema) NamedSchema
1114 -- It would be cleaner to have GToSchema constraint only on default signature and not in the class method
1124 -- It would be cleaner to have GToSchema constraint only on default signature and not in the class method
1115 -- above, however sadly GHC does not like it.
1125 -- above, however sadly GHC does not like it.
@@ -1129,7 +1139,7 @@ using 'ToSchema1' instance, like this:
1130newtype BySchema1 f a = BySchema1 (f a)
1140newtype BySchema1 f a = BySchema1 (f a)
1132−instance (ToSchema1 f, Generic (f a), GToSchema (Rep (f a)), Typeable (f a), ToSchema a) => ToSchema (BySchema1 f a) where
1142+instance (ToSchema1 f, Generic (f a), GToSchema (Rep (f a)), Typeable (f a), ToSchema a, Typeable a) => ToSchema (BySchema1 f a) where
1133 declareNamedSchema _ = do
1143 declareNamedSchema _ = do
1134 sch <- declareNamedSchema1 @f @a Proxy Proxy
1144 sch <- declareNamedSchema1 @f @a Proxy Proxy
1135 let tName = T.replace " " "_" $ T.pack $ show $ typeRep @(f a)
1145 let tName = T.replace " " "_" $ T.pack $ show $ typeRep @(f a)