packages feed

swagger2 0.2 → 0.3

raw patch · 5 files changed

+24/−21 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Data.Swagger.Internal.Utils: instance Data.Swagger.Internal.Utils.SwaggerMonoid GHC.Types.Bool
- Data.Swagger: SwaggerOperation :: [Text] -> Maybe Text -> Maybe Text -> Maybe SwaggerExternalDocs -> Maybe Text -> Maybe SwaggerMimeList -> Maybe SwaggerMimeList -> [SwaggerReferenced SwaggerParameter] -> SwaggerResponses -> Maybe [SwaggerScheme] -> Bool -> [SwaggerSecurityRequirement] -> SwaggerOperation
+ Data.Swagger: SwaggerOperation :: [Text] -> Maybe Text -> Maybe Text -> Maybe SwaggerExternalDocs -> Maybe Text -> Maybe SwaggerMimeList -> Maybe SwaggerMimeList -> [SwaggerReferenced SwaggerParameter] -> SwaggerResponses -> Maybe [SwaggerScheme] -> Maybe Bool -> [SwaggerSecurityRequirement] -> SwaggerOperation
- Data.Swagger: SwaggerParameter :: Text -> Maybe Text -> Bool -> SwaggerParameterSchema -> SwaggerParameter
+ Data.Swagger: SwaggerParameter :: Text -> Maybe Text -> Maybe Bool -> SwaggerParameterSchema -> SwaggerParameter
- Data.Swagger: SwaggerParameterOtherSchema :: SwaggerParameterLocation -> SwaggerParameterType -> Maybe SwaggerFormat -> Bool -> Maybe SwaggerItems -> Maybe SwaggerCollectionFormat -> SwaggerSchemaCommon -> SwaggerParameterOtherSchema
+ Data.Swagger: SwaggerParameterOtherSchema :: SwaggerParameterLocation -> SwaggerParameterType -> Maybe SwaggerFormat -> Maybe Bool -> Maybe SwaggerItems -> Maybe SwaggerCollectionFormat -> SwaggerSchemaCommon -> SwaggerParameterOtherSchema
- Data.Swagger: SwaggerXml :: Maybe Text -> Maybe Text -> Maybe Text -> Bool -> Bool -> SwaggerXml
+ Data.Swagger: SwaggerXml :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Maybe Bool -> SwaggerXml
- Data.Swagger: [_swaggerOperationDeprecated] :: SwaggerOperation -> Bool
+ Data.Swagger: [_swaggerOperationDeprecated] :: SwaggerOperation -> Maybe Bool
- Data.Swagger: [_swaggerParameterOtherSchemaAllowEmptyValue] :: SwaggerParameterOtherSchema -> Bool
+ Data.Swagger: [_swaggerParameterOtherSchemaAllowEmptyValue] :: SwaggerParameterOtherSchema -> Maybe Bool
- Data.Swagger: [_swaggerParameterRequired] :: SwaggerParameter -> Bool
+ Data.Swagger: [_swaggerParameterRequired] :: SwaggerParameter -> Maybe Bool
- Data.Swagger: [_swaggerXmlAttribute] :: SwaggerXml -> Bool
+ Data.Swagger: [_swaggerXmlAttribute] :: SwaggerXml -> Maybe Bool
- Data.Swagger: [_swaggerXmlWrapped] :: SwaggerXml -> Bool
+ Data.Swagger: [_swaggerXmlWrapped] :: SwaggerXml -> Maybe Bool
- Data.Swagger.Internal: SwaggerOperation :: [Text] -> Maybe Text -> Maybe Text -> Maybe SwaggerExternalDocs -> Maybe Text -> Maybe SwaggerMimeList -> Maybe SwaggerMimeList -> [SwaggerReferenced SwaggerParameter] -> SwaggerResponses -> Maybe [SwaggerScheme] -> Bool -> [SwaggerSecurityRequirement] -> SwaggerOperation
+ Data.Swagger.Internal: SwaggerOperation :: [Text] -> Maybe Text -> Maybe Text -> Maybe SwaggerExternalDocs -> Maybe Text -> Maybe SwaggerMimeList -> Maybe SwaggerMimeList -> [SwaggerReferenced SwaggerParameter] -> SwaggerResponses -> Maybe [SwaggerScheme] -> Maybe Bool -> [SwaggerSecurityRequirement] -> SwaggerOperation
- Data.Swagger.Internal: SwaggerParameter :: Text -> Maybe Text -> Bool -> SwaggerParameterSchema -> SwaggerParameter
+ Data.Swagger.Internal: SwaggerParameter :: Text -> Maybe Text -> Maybe Bool -> SwaggerParameterSchema -> SwaggerParameter
- Data.Swagger.Internal: SwaggerParameterOtherSchema :: SwaggerParameterLocation -> SwaggerParameterType -> Maybe SwaggerFormat -> Bool -> Maybe SwaggerItems -> Maybe SwaggerCollectionFormat -> SwaggerSchemaCommon -> SwaggerParameterOtherSchema
+ Data.Swagger.Internal: SwaggerParameterOtherSchema :: SwaggerParameterLocation -> SwaggerParameterType -> Maybe SwaggerFormat -> Maybe Bool -> Maybe SwaggerItems -> Maybe SwaggerCollectionFormat -> SwaggerSchemaCommon -> SwaggerParameterOtherSchema
- Data.Swagger.Internal: SwaggerXml :: Maybe Text -> Maybe Text -> Maybe Text -> Bool -> Bool -> SwaggerXml
+ Data.Swagger.Internal: SwaggerXml :: Maybe Text -> Maybe Text -> Maybe Text -> Maybe Bool -> Maybe Bool -> SwaggerXml
- Data.Swagger.Internal: [_swaggerOperationDeprecated] :: SwaggerOperation -> Bool
+ Data.Swagger.Internal: [_swaggerOperationDeprecated] :: SwaggerOperation -> Maybe Bool
- Data.Swagger.Internal: [_swaggerParameterOtherSchemaAllowEmptyValue] :: SwaggerParameterOtherSchema -> Bool
+ Data.Swagger.Internal: [_swaggerParameterOtherSchemaAllowEmptyValue] :: SwaggerParameterOtherSchema -> Maybe Bool
- Data.Swagger.Internal: [_swaggerParameterRequired] :: SwaggerParameter -> Bool
+ Data.Swagger.Internal: [_swaggerParameterRequired] :: SwaggerParameter -> Maybe Bool
- Data.Swagger.Internal: [_swaggerXmlAttribute] :: SwaggerXml -> Bool
+ Data.Swagger.Internal: [_swaggerXmlAttribute] :: SwaggerXml -> Maybe Bool
- Data.Swagger.Internal: [_swaggerXmlWrapped] :: SwaggerXml -> Bool
+ Data.Swagger.Internal: [_swaggerXmlWrapped] :: SwaggerXml -> Maybe Bool
- Data.Swagger.Lens: swaggerOperationDeprecated :: Lens' SwaggerOperation Bool
+ Data.Swagger.Lens: swaggerOperationDeprecated :: Lens' SwaggerOperation (Maybe Bool)
- Data.Swagger.Lens: swaggerParameterOtherSchemaAllowEmptyValue :: Lens' SwaggerParameterOtherSchema Bool
+ Data.Swagger.Lens: swaggerParameterOtherSchemaAllowEmptyValue :: Lens' SwaggerParameterOtherSchema (Maybe Bool)
- Data.Swagger.Lens: swaggerParameterRequired :: Lens' SwaggerParameter Bool
+ Data.Swagger.Lens: swaggerParameterRequired :: Lens' SwaggerParameter (Maybe Bool)
- Data.Swagger.Lens: swaggerXmlAttribute :: Lens' SwaggerXml Bool
+ Data.Swagger.Lens: swaggerXmlAttribute :: Lens' SwaggerXml (Maybe Bool)
- Data.Swagger.Lens: swaggerXmlWrapped :: Lens' SwaggerXml Bool
+ Data.Swagger.Lens: swaggerXmlWrapped :: Lens' SwaggerXml (Maybe Bool)

Files

CHANGELOG.md view
@@ -1,3 +1,11 @@+0.3+---+* Fixes:+    * Fix `SwaggerMonoid Text` instance;+    * Wrap `Bool` in `Maybe` everywhere;+    * These changes make all `Data.Swagger` `Monoid` instances obey monoid laws+      (previously right identity law was broken by some instances).+ 0.2 --- * Add `Data.Swagger.Lens`
src/Data/Swagger/Internal.hs view
@@ -242,7 +242,7 @@     -- | Declares this operation to be deprecated.     -- Usage of the declared operation should be refrained.     -- Default value is @False@.-  , _swaggerOperationDeprecated :: Bool+  , _swaggerOperationDeprecated :: Maybe Bool      -- | A declaration of which security schemes are applied for this operation.     -- The list of values describes alternative security schemes that can be used@@ -270,7 +270,7 @@     -- | Determines whether this parameter is mandatory.     -- If the parameter is in "path", this property is required and its value MUST be true.     -- Otherwise, the property MAY be included and its default value is @False@.-  , _swaggerParameterRequired :: Bool+  , _swaggerParameterRequired :: Maybe Bool      -- | Parameter schema.   , _swaggerParameterSchema :: SwaggerParameterSchema@@ -300,7 +300,7 @@     -- This is valid only for either @'SwaggerParameterQuery'@ or @'SwaggerParameterFormData'@     -- and allows you to send a parameter with a name only or an empty value.     -- Default value is @False@.-  , _swaggerParameterOtherSchemaAllowEmptyValue :: Bool+  , _swaggerParameterOtherSchemaAllowEmptyValue :: Maybe Bool      -- | __Required if type is @'SwaggerParamArray'@__.     -- Describes the type of items in the array.@@ -451,7 +451,7 @@      -- | Declares whether the property definition translates to an attribute instead of an element.     -- Default value is @False@.-  , _swaggerXmlAttribute :: Bool+  , _swaggerXmlAttribute :: Maybe Bool      -- | MAY be used only for an array definition.     -- Signifies whether the array is wrapped@@ -459,7 +459,7 @@     -- or unwrapped (@\<book/\>\<book/\>@).     -- Default value is @False@.     -- The definition takes effect only when defined alongside type being array (outside the items).-  , _swaggerXmlWrapped :: Bool+  , _swaggerXmlWrapped :: Maybe Bool   } deriving (Eq, Show, Generic)  data SwaggerItems = SwaggerItems@@ -953,7 +953,6 @@  instance FromJSON SwaggerParameter where   parseJSON = genericParseJSONWithSub "schema" (jsonPrefix "swaggerParameter")-    `withDefaults` [ "required" .= False ]  instance FromJSON SwaggerParameterSchema where   parseJSON json@(Object o) = do@@ -967,7 +966,6 @@  instance FromJSON SwaggerParameterOtherSchema where   parseJSON = genericParseJSONWithSub "common" (jsonPrefix "swaggerParameterOtherSchema")-    `withDefaults` [ "allowEmptyValue" .= False ]  instance FromJSON SwaggerSchemaItems where   parseJSON json@(Object _) = SwaggerSchemaItemsObject <$> parseJSON json@@ -991,8 +989,7 @@  instance FromJSON SwaggerOperation where   parseJSON = genericParseJSON (jsonPrefix "swaggerOperation")-    `withDefaults` [ "deprecated" .= False-                   , "security"   .= ([] :: [SwaggerSecurityRequirement]) ]+    `withDefaults` [ "security"   .= ([] :: [SwaggerSecurityRequirement]) ]  instance FromJSON SwaggerPathItem where   parseJSON = genericParseJSON (jsonPrefix "swaggerPathItem")@@ -1009,5 +1006,4 @@  instance FromJSON SwaggerXml where   parseJSON = genericParseJSON (jsonPrefix "swaggerXml")-    `withDefaults` [ "attribute" .= False, "wrapped" .= False ] 
src/Data/Swagger/Internal/Utils.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE DefaultSignatures #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeOperators #-} module Data.Swagger.Internal.Utils where @@ -111,14 +112,11 @@  instance SwaggerMonoid Text where   swaggerMempty = mempty+  swaggerMappend x "" = x   swaggerMappend _ y = y  instance SwaggerMonoid (Maybe a) where   swaggerMempty = Nothing   swaggerMappend x Nothing = x-  swaggerMappend _ y = y--instance SwaggerMonoid Bool where-  swaggerMempty = False   swaggerMappend _ y = y 
swagger2.cabal view
@@ -1,8 +1,9 @@ name:                swagger2-version:             0.2+version:             0.3 synopsis:            Swagger 2.0 data model description:         Please see README.md homepage:            https://github.com/GetShopTV/swagger2+bug-reports:         https://github.com/GetShopTV/swagger2/issues license:             BSD3 license-file:        LICENSE author:              Nickolay Kudasov
test/Data/SwaggerSpec.hs view
@@ -165,17 +165,17 @@       [ SwaggerParameter           { _swaggerParameterName = "petId"           , _swaggerParameterDescription = Just "ID of pet that needs to be updated"-          , _swaggerParameterRequired = True+          , _swaggerParameterRequired = Just True           , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterPath) }       , SwaggerParameter           { _swaggerParameterName = "name"           , _swaggerParameterDescription = Just "Updated name of the pet"-          , _swaggerParameterRequired = False+          , _swaggerParameterRequired = Just False           , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }       , SwaggerParameter           { _swaggerParameterName = "status"           , _swaggerParameterDescription = Just "Updated status of the pet"-          , _swaggerParameterRequired = False+          , _swaggerParameterRequired = Just False           , _swaggerParameterSchema = SwaggerParameterOther (stringSchema SwaggerParameterFormData) }       ] @@ -415,7 +415,7 @@   [ ("skipParam", mempty       { _swaggerParameterName = "skip"       , _swaggerParameterDescription = Just "number of items to skip"-      , _swaggerParameterRequired = True+      , _swaggerParameterRequired = Just True       , _swaggerParameterSchema = SwaggerParameterOther mempty           { _swaggerParameterOtherSchemaIn = SwaggerParameterQuery           , _swaggerParameterOtherSchemaType = SwaggerParamInteger@@ -423,7 +423,7 @@   , ("limitParam", mempty       { _swaggerParameterName = "limit"       , _swaggerParameterDescription = Just "max records to return"-      , _swaggerParameterRequired = True+      , _swaggerParameterRequired = Just True       , _swaggerParameterSchema = SwaggerParameterOther mempty           { _swaggerParameterOtherSchemaIn = SwaggerParameterQuery           , _swaggerParameterOtherSchemaType = SwaggerParamInteger@@ -549,7 +549,7 @@                   , _swaggerOperationProduces = Just (SwaggerMimeList [ "application/json" ])                   , _swaggerOperationParameters =                       [ SwaggerInline mempty-                          { _swaggerParameterRequired = True+                          { _swaggerParameterRequired = Just True                           , _swaggerParameterName = "id"                           , _swaggerParameterDescription = Just "TodoId param"                           , _swaggerParameterSchema = SwaggerParameterOther mempty