@@ -2,6 +2,7 @@
2{-# LANGUAGE FunctionalDependencies #-}
2{-# LANGUAGE FunctionalDependencies #-}
3{-# LANGUAGE GADTs #-}
3{-# LANGUAGE GADTs #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
4{-# LANGUAGE MultiParamTypeClasses #-}
5+{-# LANGUAGE RankNTypes #-}
5{-# LANGUAGE TemplateHaskell #-}
6{-# LANGUAGE TemplateHaskell #-}
6module Data.Swagger.Lens where
7module Data.Swagger.Lens where
@@ -42,8 +43,26 @@ makeLenses ''ParamOtherSchema
42makeLenses ''Header
43makeLenses ''Header
43-- ** 'Schema' lenses
44-- ** 'Schema' lenses
44makeLenses ''Schema
45makeLenses ''Schema
45-- ** 'SwaggerItems' prisms
47-- ** 'SwaggerItems' prisms
46−makePrisms ''SwaggerItems
48+
49+_SwaggerItemsArray :: forall t. (t ~ Schema) => Review (SwaggerItems t) [Referenced Schema]
51+ = prism (\x -> SwaggerItemsArray x) $ \x -> case x of
52+ SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
53+ SwaggerItemsObject o -> Left (SwaggerItemsObject o)
54+ SwaggerItemsArray a -> Right a
56+_SwaggerItemsObject :: forall t. (t ~ Schema) => Review (SwaggerItems t) (Referenced Schema)
58+ = prism (\x -> SwaggerItemsObject x) $ \x -> case x of
59+ SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
60+ SwaggerItemsObject o -> Right o
61+ SwaggerItemsArray a -> Left (SwaggerItemsArray a)
63+_SwaggerItemsPrimitive :: forall t p f. (Profunctor p, Bifunctor p, Functor f) => Optic' p f (SwaggerItems t) (Maybe (CollectionFormat t), ParamSchema t)
64+_SwaggerItemsPrimitive = unto (\(c, p) -> SwaggerItemsPrimitive c p)
47-- ** 'ParamSchema' lenses
66-- ** 'ParamSchema' lenses
48makeLenses ''ParamSchema
67makeLenses ''ParamSchema
49-- ** 'Xml' lenses
68-- ** 'Xml' lenses