1212{-# LANGUAGE TupleSections #-}
1313{-# LANGUAGE AllowAmbiguousTypes #-}
1414{-# LANGUAGE MultiParamTypeClasses #-}
15- #if __GLASGOW_HASKELL__ >= 806
1615{-# LANGUAGE UndecidableInstances #-}
17- #endif
1816{-# OPTIONS_GHC -Wno-orphans #-}
1917module Servant.OpenApi.Internal where
2018
@@ -473,6 +471,9 @@ instance AllToResponseHeader hs => AllToResponseHeader (HList hs) where
473471
474472type DeclareDefinition = Declare (Definitions Schema )
475473
474+ class IsSwaggerResponse a where
475+ responseSwagger :: DeclareDefinition Response
476+
476477instance
477478 (AllToResponseHeader hs , IsSwaggerResponse r ) =>
478479 IsSwaggerResponse (WithHeaders hs a r )
@@ -482,12 +483,6 @@ instance
482483 (headers .~ fmap Inline (toAllResponseHeaders (Proxy @ hs )))
483484 (responseSwagger @ r )
484485
485- class IsSwaggerResponseList (as :: [Type ]) where
486- responseListSwagger :: DeclareDefinition (InsOrdHashMap HttpStatusCode Response )
487-
488- class IsSwaggerResponse a where
489- responseSwagger :: DeclareDefinition Response
490-
491486simpleResponseSwagger :: forall a cs desc . (ToSchema a , KnownSymbol desc , AllMime cs ) => DeclareDefinition Response
492487simpleResponseSwagger = do
493488 ref <- declareSchemaRef (Proxy @ a )
@@ -508,9 +503,6 @@ instance
508503 -- Defaulting this to JSON, as openapi3 needs something to map a schema against.
509504 responseSwagger = simpleResponseSwagger @ a @ '[JSON ] @ desc
510505
511- instance IsSwaggerResponseList '[] where
512- responseListSwagger = pure mempty
513-
514506instance
515507 (KnownSymbol desc , ToSchema a , Accept ct ) =>
516508 IsSwaggerResponse (RespondAs (ct :: Type ) s desc a )
@@ -526,6 +518,12 @@ instance
526518 mempty
527519 & description .~ Text. pack (symbolVal (Proxy @ desc ))
528520
521+ class IsSwaggerResponseList (as :: [Type ]) where
522+ responseListSwagger :: DeclareDefinition (InsOrdHashMap HttpStatusCode Response )
523+
524+ instance IsSwaggerResponseList '[] where
525+ responseListSwagger = pure mempty
526+
529527instance
530528 ( IsSwaggerResponse a ,
531529 KnownNat (Server. ResponseStatus a ),
0 commit comments