git.iko.soy/typeable/openapi3
on master help sign in
Fix compilation issues and warnings
commit1d25fb12c2a1d2e516d2d57dcb6c3590d5f4da8b authorOleg Grenrus <oleg.grenrus@iki.fi> dateWed 9 Mar 2016, 11:48 (11 years ago) parentb2dbef8
4 files changed+69−61
src/Data/Swagger/Internal.hs+48−49 src/Data/Swagger/Internal/AesonUtils.hs+14−2 src/Data/Swagger/Internal/Utils.hs−3 src/Data/Swagger/Lens.hs+7−7
src/Data/Swagger/Internal.hs+48−49
@@ -1,4 +1,5 @@
11{-# LANGUAGE CPP #-}
2+{-# LANGUAGE DataKinds #-}
23{-# LANGUAGE DeriveDataTypeable #-}
34{-# LANGUAGE DeriveFunctor #-}
45{-# LANGUAGE DeriveGeneric #-}
@@ -8,15 +9,15 @@
89{-# LANGUAGE GADTs #-}
910{-# LANGUAGE GeneralizedNewtypeDeriving #-}
1011{-# LANGUAGE OverloadedStrings #-}
11−{-# LANGUAGE PolyKinds #-}
1212{-# LANGUAGE RecordWildCards #-}
1313{-# LANGUAGE ScopedTypeVariables #-}
1414{-# LANGUAGE StandaloneDeriving #-}
15−{-# LANGUAGE UndecidableInstances #-}
16−
17−{-# LANGUAGE DataKinds #-}
18−{-# LANGUAGE TypeFamilies #-}
1915{-# LANGUAGE TemplateHaskell #-}
16+{-# LANGUAGE TypeFamilies #-}
17+{-# LANGUAGE UndecidableInstances #-}
18+#if __GLASGOW_HASKELL__ <710
19+{-# LANGUAGE PolyKinds #-}
20+#endif
2021#include "overlapping-compat.h"
2122module Data.Swagger.Internal where
2223
@@ -25,11 +26,9 @@ import Prelude.Compat
2526
2627import Control.Lens ((&), (.~), (?~))
2728import Control.Applicative
28−import Control.Monad
2929import Data.Aeson
3030import qualified Data.Aeson.Types as JSON
3131import Data.Data (Data(..), Typeable, mkConstr, mkDataType, Fixity(..), Constr, DataType, constrIndex)
32−import Data.HashMap.Strict (HashMap)
3332import qualified Data.HashMap.Strict as HashMap
3433import Data.Map (Map)
3534import qualified Data.Map as Map
@@ -355,7 +354,7 @@ data ParamOtherSchema = ParamOtherSchema
355354 -- Default value is @False@.
356355 , _paramOtherSchemaAllowEmptyValue :: Maybe Bool
357356
358− , _paramOtherSchemaParamSchema :: ParamSchema SwaggerKindParamOtherSchema
357+ , _paramOtherSchemaParamSchema :: ParamSchema 'SwaggerKindParamOtherSchema
359358 } deriving (Eq, Show, Generic, Typeable, Data)
360359
361360-- | Items for @'SwaggerArray'@ schemas.
@@ -370,8 +369,8 @@ data ParamOtherSchema = ParamOtherSchema
370369-- @'SwaggerItemsArray'@ should be used to specify tuple @'Schema'@s.
371370data SwaggerItems t where
372371 SwaggerItemsPrimitive :: Maybe (CollectionFormat k) -> ParamSchema k-> SwaggerItems k
373− SwaggerItemsObject :: Referenced Schema -> SwaggerItems SwaggerKindSchema
374− SwaggerItemsArray :: [Referenced Schema] -> SwaggerItems SwaggerKindSchema
372+ SwaggerItemsObject :: Referenced Schema -> SwaggerItems 'SwaggerKindSchema
373+ SwaggerItemsArray :: [Referenced Schema] -> SwaggerItems 'SwaggerKindSchema
375374 deriving (Typeable)
376375
377376deriving instance Eq (SwaggerItems t)
@@ -393,7 +392,7 @@ swaggerItemsDataType = mkDataType "Data.Swagger.SwaggerItems" [swaggerItemsPrimi
393392-- Note: unfortunately we have to write these Data instances by hand,
394393-- to get better contexts / avoid duplicate name when using standalone deriving
395394
396−instance Data t => Data (SwaggerItems (SwaggerKindNormal t)) where
395+instance Data t => Data (SwaggerItems ('SwaggerKindNormal t)) where
397396 -- TODO: define gfoldl
398397 gunfold k z c = case constrIndex c of
399398 1 -> k (k (z SwaggerItemsPrimitive))
@@ -402,7 +401,7 @@ instance Data t => Data (SwaggerItems (SwaggerKindNormal t)) where
402401 dataTypeOf _ = swaggerItemsDataType
403402
404403-- SwaggerItems SwaggerKindParamOtherSchema can be constructed using SwaggerItemsPrimitive only
405−instance Data (SwaggerItems SwaggerKindParamOtherSchema) where
404+instance Data (SwaggerItems 'SwaggerKindParamOtherSchema) where
406405 -- TODO: define gfoldl
407406 gunfold k z c = case constrIndex c of
408407 1 -> k (k (z SwaggerItemsPrimitive))
@@ -410,18 +409,19 @@ instance Data (SwaggerItems SwaggerKindParamOtherSchema) where
410409 toConstr _ = swaggerItemsPrimitiveConstr
411410 dataTypeOf _ = swaggerItemsDataType
412411
413−instance Data (SwaggerItems SwaggerKindSchema) where
412+instance Data (SwaggerItems 'SwaggerKindSchema) where
414413 gfoldl _ _ (SwaggerItemsPrimitive _ _) = error $ " Data.Data.gfoldl: Constructor SwaggerItemsPrimitive used to construct SwaggerItems SwaggerKindSchema"
415414 gfoldl k z (SwaggerItemsObject ref) = z SwaggerItemsObject `k` ref
416415 gfoldl k z (SwaggerItemsArray ref) = z SwaggerItemsArray `k` ref
417416
418417 gunfold k z c = case constrIndex c of
419− 1 -> error $ "Data.Data.gunfold: Constructor " ++ show c ++ " is not of type (SwaggerItems SwaggerKindSchema)"
420418 2 -> k (z SwaggerItemsObject)
421419 3 -> k (z SwaggerItemsArray)
420+ _ -> error $ "Data.Data.gunfold: Constructor " ++ show c ++ " is not of type (SwaggerItems SwaggerKindSchema)."
422421
423− toConstr (SwaggerItemsObject _) = swaggerItemsObjectConstr
424− toConstr (SwaggerItemsArray _) = swaggerItemsArrayConstr
422+ toConstr (SwaggerItemsPrimitive _ _) = error "Not supported"
423+ toConstr (SwaggerItemsObject _) = swaggerItemsObjectConstr
424+ toConstr (SwaggerItemsArray _) = swaggerItemsArrayConstr
425425
426426 dataTypeOf _ = swaggerItemsDataType
427427
@@ -430,17 +430,16 @@ data SwaggerKind t
430430 = SwaggerKindNormal t
431431 | SwaggerKindParamOtherSchema
432432 | SwaggerKindSchema
433+ deriving (Typeable)
433434
434−#if __GLASGLOW_HASKELL__ < 710
435435deriving instance Typeable 'SwaggerKindNormal
436436deriving instance Typeable 'SwaggerKindParamOtherSchema
437437deriving instance Typeable 'SwaggerKindSchema
438−#endif
439438
440439type family SwaggerKindType (k :: SwaggerKind *) :: *
441−type instance SwaggerKindType (SwaggerKindNormal t) = t
442−type instance SwaggerKindType SwaggerKindSchema = Schema
443−type instance SwaggerKindType SwaggerKindParamOtherSchema = ParamOtherSchema
440+type instance SwaggerKindType ('SwaggerKindNormal t) = t
441+type instance SwaggerKindType 'SwaggerKindSchema = Schema
442+type instance SwaggerKindType 'SwaggerKindParamOtherSchema = ParamOtherSchema
444443
445444data SwaggerType t where
446445 SwaggerString :: SwaggerType t
@@ -448,9 +447,9 @@ data SwaggerType t where
448447 SwaggerInteger :: SwaggerType t
449448 SwaggerBoolean :: SwaggerType t
450449 SwaggerArray :: SwaggerType t
451− SwaggerFile :: SwaggerType SwaggerKindParamOtherSchema
452− SwaggerNull :: SwaggerType SwaggerKindSchema
453− SwaggerObject :: SwaggerType SwaggerKindSchema
450+ SwaggerFile :: SwaggerType 'SwaggerKindParamOtherSchema
451+ SwaggerNull :: SwaggerType 'SwaggerKindSchema
452+ SwaggerObject :: SwaggerType 'SwaggerKindSchema
454453 deriving (Typeable)
455454
456455deriving instance Eq (SwaggerType t)
@@ -465,27 +464,27 @@ swaggerTypeDataType _ = mkDataType "Data.Swagger.SwaggerType" swaggerTypeConstrs
465464swaggerCommonTypes :: [SwaggerType k]
466465swaggerCommonTypes = [SwaggerString, SwaggerNumber, SwaggerInteger, SwaggerBoolean, SwaggerArray]
467466
468−swaggerParamTypes :: [SwaggerType SwaggerKindParamOtherSchema]
467+swaggerParamTypes :: [SwaggerType 'SwaggerKindParamOtherSchema]
469468swaggerParamTypes = swaggerCommonTypes ++ [SwaggerFile]
470469
471−swaggerSchemaTypes :: [SwaggerType SwaggerKindSchema]
470+swaggerSchemaTypes :: [SwaggerType 'SwaggerKindSchema]
472471swaggerSchemaTypes = swaggerCommonTypes ++ [error "SwaggerFile is invalid SwaggerType Schema", SwaggerNull, SwaggerObject]
473472
474473swaggerTypeConstrs :: [Constr]
475−swaggerTypeConstrs = map swaggerTypeConstr (swaggerCommonTypes :: [SwaggerType SwaggerKindSchema])
474+swaggerTypeConstrs = map swaggerTypeConstr (swaggerCommonTypes :: [SwaggerType 'SwaggerKindSchema])
476475 ++ [swaggerTypeConstr SwaggerFile, swaggerTypeConstr SwaggerNull, swaggerTypeConstr SwaggerObject]
477476
478−instance Typeable t => Data (SwaggerType (SwaggerKindNormal t)) where
477+instance Typeable t => Data (SwaggerType ('SwaggerKindNormal t)) where
479478 gunfold = gunfoldEnum "SwaggerType" swaggerCommonTypes
480479 toConstr = swaggerTypeConstr
481480 dataTypeOf = swaggerTypeDataType
482481
483−instance Data (SwaggerType SwaggerKindParamOtherSchema) where
482+instance Data (SwaggerType 'SwaggerKindParamOtherSchema) where
484483 gunfold = gunfoldEnum "SwaggerType ParamOtherSchema" swaggerParamTypes
485484 toConstr = swaggerTypeConstr
486485 dataTypeOf = swaggerTypeDataType
487486
488−instance Data (SwaggerType SwaggerKindSchema) where
487+instance Data (SwaggerType 'SwaggerKindSchema) where
489488 gunfold = gunfoldEnum "SwaggerType Schema" swaggerSchemaTypes
490489 toConstr = swaggerTypeConstr
491490 dataTypeOf = swaggerTypeDataType
@@ -525,7 +524,7 @@ data CollectionFormat t where
525524 -- Corresponds to multiple parameter instances
526525 -- instead of multiple values for a single instance @foo=bar&foo=baz@.
527526 -- This is valid only for parameters in @'ParamQuery'@ or @'ParamFormData'@.
528− CollectionMulti :: CollectionFormat SwaggerKindParamOtherSchema
527+ CollectionMulti :: CollectionFormat 'SwaggerKindParamOtherSchema
529528 deriving (Typeable)
530529
531530deriving instance Eq (CollectionFormat t)
@@ -541,12 +540,12 @@ collectionFormatDataType = mkDataType "Data.Swagger.CollectionFormat" $
541540collectionCommonFormats :: [CollectionFormat t]
542541collectionCommonFormats = [ CollectionCSV, CollectionSSV, CollectionTSV, CollectionPipes ]
543542
544−instance Data t => Data (CollectionFormat (SwaggerKindNormal t)) where
543+instance Data t => Data (CollectionFormat ('SwaggerKindNormal t)) where
545544 gunfold = gunfoldEnum "CollectionFormat" collectionCommonFormats
546545 toConstr = collectionFormatConstr
547546 dataTypeOf _ = collectionFormatDataType
548547
549−deriving instance Data (CollectionFormat SwaggerKindParamOtherSchema)
548+deriving instance Data (CollectionFormat 'SwaggerKindParamOtherSchema)
550549
551550type ParamName = Text
552551
@@ -568,7 +567,7 @@ data Schema = Schema
568567 , _schemaMaxProperties :: Maybe Integer
569568 , _schemaMinProperties :: Maybe Integer
570569
571− , _schemaParamSchema :: ParamSchema SwaggerKindSchema
570+ , _schemaParamSchema :: ParamSchema 'SwaggerKindSchema
572571 } deriving (Eq, Show, Generic, Data, Typeable)
573572
574573-- | A @'Schema'@ with an optional name.
@@ -682,7 +681,7 @@ data Header = Header
682681 { -- | A short description of the header.
683682 _headerDescription :: Maybe Text
684683
685− , _headerParamSchema :: ParamSchema (SwaggerKindNormal Header)
684+ , _headerParamSchema :: ParamSchema ('SwaggerKindNormal Header)
686685 } deriving (Eq, Show, Generic, Data, Typeable)
687686
688687data Example = Example { getExample :: Map MediaType Value }
@@ -1139,17 +1138,17 @@ instance FromJSON Schema where
11391138instance FromJSON Header where
11401139 parseJSON = sopSwaggerGenericParseJSON
11411140
1142−instance (FromJSON (CollectionFormat (SwaggerKindNormal t)), FromJSON (ParamSchema (SwaggerKindNormal t))) => FromJSON (SwaggerItems (SwaggerKindNormal t)) where
1141+instance (FromJSON (CollectionFormat ('SwaggerKindNormal t)), FromJSON (ParamSchema ('SwaggerKindNormal t))) => FromJSON (SwaggerItems ('SwaggerKindNormal t)) where
11431142 parseJSON = withObject "SwaggerItemsPrimitive" $ \o -> SwaggerItemsPrimitive
11441143 <$> o .:? "collectionFormat"
11451144 <*> (o .: "items" >>= parseJSON)
11461145
1147−instance FromJSON (SwaggerItems SwaggerKindParamOtherSchema) where
1146+instance FromJSON (SwaggerItems 'SwaggerKindParamOtherSchema) where
11481147 parseJSON = withObject "SwaggerItemsPrimitive" $ \o -> SwaggerItemsPrimitive
11491148 <$> o .:? "collectionFormat"
11501149 <*> ((o .: "items" >>= parseJSON) <|> fail ("foo" ++ show o))
11511150
1152−instance FromJSON (SwaggerItems SwaggerKindSchema) where
1151+instance FromJSON (SwaggerItems 'SwaggerKindSchema) where
11531152 parseJSON js@(Object _) = SwaggerItemsObject <$> parseJSON js
11541153 parseJSON js@(Array _) = SwaggerItemsArray <$> parseJSON js
11551154 parseJSON _ = empty
@@ -1226,30 +1225,30 @@ instance FromJSON (Referenced Response) where parseJSON = referencedParseJSON "#
12261225instance FromJSON Xml where
12271226 parseJSON = genericParseJSON (jsonPrefix "xml")
12281227
1229−instance FromJSON (SwaggerType SwaggerKindSchema) where
1228+instance FromJSON (SwaggerType 'SwaggerKindSchema) where
12301229 parseJSON = parseOneOf [SwaggerString, SwaggerInteger, SwaggerNumber, SwaggerBoolean, SwaggerArray, SwaggerNull, SwaggerObject]
12311230
1232−instance FromJSON (SwaggerType SwaggerKindParamOtherSchema) where
1231+instance FromJSON (SwaggerType 'SwaggerKindParamOtherSchema) where
12331232 parseJSON = parseOneOf [SwaggerString, SwaggerInteger, SwaggerNumber, SwaggerBoolean, SwaggerArray, SwaggerFile]
12341233
1235−instance FromJSON (SwaggerType (SwaggerKindNormal t)) where
1234+instance FromJSON (SwaggerType ('SwaggerKindNormal t)) where
12361235 parseJSON = parseOneOf [SwaggerString, SwaggerInteger, SwaggerNumber, SwaggerBoolean, SwaggerArray]
12371236
1238−instance FromJSON (CollectionFormat (SwaggerKindNormal t)) where
1237+instance FromJSON (CollectionFormat ('SwaggerKindNormal t)) where
12391238 parseJSON = parseOneOf [CollectionCSV, CollectionSSV, CollectionTSV, CollectionPipes]
12401239
12411240-- NOTE: There aren't collections of 'Schema'
12421241--instance FromJSON (CollectionFormat (SwaggerKindSchema)) where
12431242-- parseJSON = parseOneOf [CollectionCSV, CollectionSSV, CollectionTSV, CollectionPipes]
12441243
1245−instance FromJSON (CollectionFormat SwaggerKindParamOtherSchema) where
1244+instance FromJSON (CollectionFormat 'SwaggerKindParamOtherSchema) where
12461245 parseJSON = parseOneOf [CollectionCSV, CollectionSSV, CollectionTSV, CollectionPipes, CollectionMulti]
12471246
1248−instance (FromJSON (SwaggerType (SwaggerKindNormal t)), FromJSON (SwaggerItems (SwaggerKindNormal t))) => FromJSON (ParamSchema (SwaggerKindNormal t)) where
1247+instance (FromJSON (SwaggerType ('SwaggerKindNormal t)), FromJSON (SwaggerItems ('SwaggerKindNormal t))) => FromJSON (ParamSchema ('SwaggerKindNormal t)) where
12491248 parseJSON = sopSwaggerGenericParseJSON
1250−instance FromJSON (ParamSchema SwaggerKindParamOtherSchema) where
1249+instance FromJSON (ParamSchema 'SwaggerKindParamOtherSchema) where
12511250 parseJSON = sopSwaggerGenericParseJSON
1252−instance FromJSON (ParamSchema SwaggerKindSchema) where
1251+instance FromJSON (ParamSchema 'SwaggerKindSchema) where
12531252 parseJSON = sopSwaggerGenericParseJSON
12541253
12551254-------------------------------------------------------------------------------
@@ -1292,12 +1291,12 @@ instance HasSwaggerAesonOptions Schema where
12921291instance HasSwaggerAesonOptions Swagger where
12931292 swaggerAesonOptions _ = mkSwaggerAesonOptions "swagger" & saoAdditionalPairs .~ [("swagger", "2.0")]
12941293
1295−instance HasSwaggerAesonOptions (ParamSchema (SwaggerKindNormal t)) where
1294+instance HasSwaggerAesonOptions (ParamSchema ('SwaggerKindNormal t)) where
12961295 swaggerAesonOptions _ = mkSwaggerAesonOptions "paramSchema" & saoSubObject ?~ "items"
1297−instance HasSwaggerAesonOptions (ParamSchema SwaggerKindParamOtherSchema) where
1296+instance HasSwaggerAesonOptions (ParamSchema 'SwaggerKindParamOtherSchema) where
12981297 swaggerAesonOptions _ = mkSwaggerAesonOptions "paramSchema" & saoSubObject ?~ "items"
12991298-- NOTE: Schema doesn't have 'items' sub object!
1300−instance HasSwaggerAesonOptions (ParamSchema SwaggerKindSchema) where
1299+instance HasSwaggerAesonOptions (ParamSchema 'SwaggerKindSchema) where
13011300 swaggerAesonOptions _ = mkSwaggerAesonOptions "paramSchema"
13021301
13031302instance AesonDefaultValue (ParamSchema s)
src/Data/Swagger/Internal/AesonUtils.hs+14−2
@@ -32,6 +32,7 @@ import Control.Monad (unless)
3232import Data.Aeson (ToJSON(..), FromJSON(..), Value(..), Object, object, (.:), (.:?), (.!=), withObject)
3333import Data.Aeson.Types (Parser, Pair)
3434import Data.Char (toLower, isUpper)
35+import Data.Foldable (traverse_)
3536import Data.Text (Text)
3637
3738import Generics.SOP
@@ -44,7 +45,6 @@ import qualified Data.HashMap.Strict.InsOrd as InsOrd
4445#if MIN_VERSION_aeson(0,10,0)
4546import Data.Aeson (Encoding, pairs, (.=), Series)
4647import Data.Monoid ((<>))
47−import Data.Foldable (foldMap)
4848#endif
4949
5050-------------------------------------------------------------------------------
@@ -145,6 +145,7 @@ sopSwaggerGenericToJSON'
145145 -> [Pair]
146146sopSwaggerGenericToJSON' opts (SOP (Z fields)) (ADT _ _ (Record _ fieldsInfo :* Nil)) (POP (defs :* Nil)) =
147147 sopSwaggerGenericToJSON'' opts fields fieldsInfo defs
148+sopSwaggerGenericToJSON' _ _ _ _ = error "sopSwaggerGenericToJSON: unsupported type"
148149
149150sopSwaggerGenericToJSON''
150151 :: (All ToJSON xs, All Eq xs)
@@ -171,6 +172,9 @@ sopSwaggerGenericToJSON'' (SwaggerAesonOptions prefix _ sub) = go
171172 json = toJSON x
172173 name' = fieldNameModifier name
173174 rest = go xs names defs
175+#if __GLASGOW_HASKELL__ < 800
176+ go _ _ _ = error "not empty"
177+#endif
174178
175179 fieldNameModifier = modifier . drop 1
176180 modifier = lowerFirstUppers . drop (length prefix)
@@ -195,7 +199,7 @@ sopSwaggerGenericParseJSON
195199sopSwaggerGenericParseJSON = withObject "Swagger Record Object" $ \obj ->
196200 let ps = sopSwaggerGenericParseJSON' opts obj (datatypeInfo proxy) (aesonDefaults proxy)
197201 in do
198− traverse (parseAdditionalField obj) (opts ^. saoAdditionalPairs)
202+ traverse_ (parseAdditionalField obj) (opts ^. saoAdditionalPairs)
199203 to <$> ps
200204 where
201205 proxy = Proxy :: Proxy a
@@ -218,6 +222,7 @@ sopSwaggerGenericParseJSON'
218222 -> Parser (SOP I '[xs])
219223sopSwaggerGenericParseJSON' opts obj (ADT _ _ (Record _ fieldsInfo :* Nil)) (POP (defs :* Nil)) =
220224 SOP . Z <$> sopSwaggerGenericParseJSON'' opts obj fieldsInfo defs
225+sopSwaggerGenericParseJSON' _ _ _ _ = error "sopSwaggerGenericParseJSON: unsupported type"
221226
222227sopSwaggerGenericParseJSON''
223228 :: (All FromJSON xs, All Eq xs)
@@ -245,6 +250,9 @@ sopSwaggerGenericParseJSON'' (SwaggerAesonOptions prefix _ sub) obj = go
245250 withDef = case def of
246251 Just def' -> (<|> pure def')
247252 Nothing -> id
253+#if __GLASGOW_HASKELL__ < 800
254+ go _ _ = error "not empty"
255+#endif
248256
249257 fieldNameModifier = modifier . drop 1
250258 modifier = lowerFirstUppers . drop (length prefix)
@@ -287,6 +295,7 @@ sopSwaggerGenericToEncoding'
287295 -> Series
288296sopSwaggerGenericToEncoding' opts (SOP (Z fields)) (ADT _ _ (Record _ fieldsInfo :* Nil)) (POP (defs :* Nil)) =
289297 sopSwaggerGenericToEncoding'' opts fields fieldsInfo defs
298+sopSwaggerGenericToEncoding' _ _ _ _ = error "sopSwaggerGenericToEncoding: unsupported type"
290299
291300sopSwaggerGenericToEncoding''
292301 :: (All ToJSON xs, All Eq xs)
@@ -312,6 +321,9 @@ sopSwaggerGenericToEncoding'' (SwaggerAesonOptions prefix _ sub) = go
312321 where
313322 name' = fieldNameModifier name
314323 rest = go xs names defs
324+#if __GLASGOW_HASKELL__ < 800
325+ go _ _ _ = error "not empty"
326+#endif
315327
316328 fieldNameModifier = modifier . drop 1
317329 modifier = lowerFirstUppers . drop (length prefix)
src/Data/Swagger/Internal/Utils.hs−3
@@ -9,8 +9,6 @@ module Data.Swagger.Internal.Utils where
99import Prelude ()
1010import Prelude.Compat
1111
12−import Control.Arrow (first)
13−import Control.Applicative
1412import Control.Lens ((&), (%~))
1513import Control.Lens.TH
1614import Data.Aeson
@@ -28,7 +26,6 @@ import Data.Set (Set)
2826import Data.Text (Text)
2927import GHC.Generics
3028import Language.Haskell.TH (mkName)
31−import Text.Read (readMaybe)
3229
3330swaggerFieldRules :: LensRules
3431swaggerFieldRules = defaultFieldRules & lensField %~ swaggerFieldNamer
src/Data/Swagger/Lens.hs+7−7
@@ -60,14 +60,14 @@ makePrisms ''Referenced
6060
6161-- ** 'SwaggerItems' prisms
6262
63−_SwaggerItemsArray :: Review (SwaggerItems SwaggerKindSchema) [Referenced Schema]
63+_SwaggerItemsArray :: Review (SwaggerItems 'SwaggerKindSchema) [Referenced Schema]
6464_SwaggerItemsArray
6565 = prism (\x -> SwaggerItemsArray x) $ \x -> case x of
6666 SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
6767 SwaggerItemsObject o -> Left (SwaggerItemsObject o)
6868 SwaggerItemsArray a -> Right a
6969
70−_SwaggerItemsObject :: Review (SwaggerItems SwaggerKindSchema) (Referenced Schema)
70+_SwaggerItemsObject :: Review (SwaggerItems 'SwaggerKindSchema) (Referenced Schema)
7171_SwaggerItemsObject
7272 = prism (\x -> SwaggerItemsObject x) $ \x -> case x of
7373 SwaggerItemsPrimitive c p -> Left (SwaggerItemsPrimitive c p)
@@ -92,13 +92,13 @@ instance At Responses where at n = responses . at n
9292instance Ixed Operation where ix n = responses . ix n
9393instance At Operation where at n = responses . at n
9494
95−instance HasParamSchema NamedSchema (ParamSchema SwaggerKindSchema) where paramSchema = schema.paramSchema
95+instance HasParamSchema NamedSchema (ParamSchema 'SwaggerKindSchema) where paramSchema = schema.paramSchema
9696
9797-- HasType instances
98−instance HasType Header (SwaggerType (SwaggerKindNormal Header)) where type_ = paramSchema.type_
99−instance HasType Schema (SwaggerType SwaggerKindSchema) where type_ = paramSchema.type_
100−instance HasType NamedSchema (SwaggerType SwaggerKindSchema) where type_ = paramSchema.type_
101−instance HasType ParamOtherSchema (SwaggerType SwaggerKindParamOtherSchema) where type_ = paramSchema.type_
98+instance HasType Header (SwaggerType ('SwaggerKindNormal Header)) where type_ = paramSchema.type_
99+instance HasType Schema (SwaggerType 'SwaggerKindSchema) where type_ = paramSchema.type_
100+instance HasType NamedSchema (SwaggerType 'SwaggerKindSchema) where type_ = paramSchema.type_
101+instance HasType ParamOtherSchema (SwaggerType 'SwaggerKindParamOtherSchema) where type_ = paramSchema.type_
102102
103103-- HasDefault instances
104104instance HasDefault Header (Maybe Value) where default_ = paramSchema.default_