packages feed

json-spec-openapi 0.3.0.0 → 0.3.1.0

raw patch · 3 files changed

+32/−14 lines, 3 filesdep ~json-specPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: json-spec

API changes (from Hackage documentation)

+ Data.JsonSpec.OpenApi: instance Data.JsonSpec.OpenApi.Schemaable 'Data.JsonSpec.Spec.JsonRaw

Files

json-spec-openapi.cabal view
@@ -1,6 +1,6 @@ cabal-version:       3.0 name:                json-spec-openapi-version:             0.3.0.0+version:             0.3.1.0 synopsis:            json-spec-openapi description:   This package provides a way to produce@@ -64,7 +64,7 @@     , aeson                     >= 2.2.1.0  && < 2.3     , base                      >= 4.19.0.0 && < 4.20     , insert-ordered-containers >= 0.2.5.3  && < 0.3-    , json-spec                 >= 0.3.0.0  && < 0.4+    , json-spec                 >= 0.5.0.0  && < 0.6     , lens                      >= 5.2.3    && < 5.3     , openapi3                  >= 3.2.4    && < 3.3     , text                      >= 2.1      && < 2.2@@ -96,6 +96,6 @@   build-depends:     , json-spec-openapi -    , hspec      >= 2.11.1   && < 2.12-    , time       >= 1.12.2   && < 1.13+    , hspec      >= 2.11.1 && < 2.12+    , time       >= 1.12.2 && < 1.13 
src/Data/JsonSpec/OpenApi.hs view
@@ -104,8 +104,8 @@ import Data.JsonSpec (FieldSpec(Optional, Required),   HasJsonDecodingSpec(DecodingSpec), HasJsonEncodingSpec(EncodingSpec),   Specification(JsonArray, JsonBool, JsonDateTime, JsonEither, JsonInt,-  JsonLet, JsonNullable, JsonNum, JsonObject, JsonRef, JsonString,-  JsonTag))+  JsonLet, JsonNullable, JsonNum, JsonObject, JsonRaw, JsonRef,+  JsonString, JsonTag)) import Data.OpenApi (AdditionalProperties(AdditionalPropertiesAllowed),   HasAdditionalProperties(additionalProperties), HasEnum(enum_),   HasFormat(format), HasItems(items), HasOneOf(oneOf),@@ -306,7 +306,6 @@       pure $         schema           & over required (sym @key:)- instance (Schemaable spec) => Schemaable ('JsonArray spec) where   schemaable Proxy = do     elementSchema <- schemaable (Proxy @spec)@@ -384,6 +383,11 @@             , Inline schema             ]         )+instance Schemaable JsonRaw where+  schemaable Proxy =+    pure $+      mempty+      & set type_ (Just OpenApiObject)   {-| Go through and make a declaration for each item in a JsonLet.  -}
test/test.hs view
@@ -13,13 +13,13 @@ module Main (main) where  import Control.Lens (At(at), (&), set)-import Data.Aeson (ToJSON(toJSON), FromJSON, encode)-import Data.JsonSpec (Field(Field, unField), FieldSpec(Optional,+import Data.Aeson (ToJSON(toJSON), FromJSON)+import Data.JsonSpec (Field(Field), FieldSpec(Optional,   Required), HasJsonDecodingSpec(DecodingSpec, fromJSONStructure),   HasJsonEncodingSpec(EncodingSpec, toJSONStructure), SpecJSON(SpecJSON),   Specification(JsonArray, JsonBool, JsonDateTime, JsonEither, JsonInt,-  JsonLet, JsonNullable, JsonNum, JsonObject, JsonRef, JsonString,-  JsonTag))+  JsonLet, JsonNullable, JsonNum, JsonObject, JsonRaw, JsonRef,+  JsonString, JsonTag), unField) import Data.JsonSpec.OpenApi (EncodingSchema, toOpenApiSchema) import Data.OpenApi (Definitions, ToSchema) import Data.Proxy (Proxy(Proxy))@@ -28,6 +28,7 @@ import Prelude (Applicative(pure), Bool(False), Functor(fmap),   Maybe(Just), Monoid(mempty), ($), Eq, IO, Show) import Test.Hspec (describe, hspec, it, shouldBe)+import qualified Data.Aeson as Aeson import qualified Data.HashMap.Strict.InsOrd as HMI import qualified Data.OpenApi as OA @@ -134,6 +135,19 @@         in           actual `shouldBe` expected +      it "raw" $+        let+          actual :: (Definitions OA.Schema, OA.Schema)+          actual = toOpenApiSchema (Proxy @JsonRaw)++          expected :: (Definitions OA.Schema, OA.Schema)+          expected =+            ( mempty+            , mempty & set OA.type_ (Just OA.OpenApiObject)+            )+        in+          actual `shouldBe` expected+       it "num" $         let           actual :: (Definitions OA.Schema, OA.Schema)@@ -213,7 +227,7 @@                 )             )         in-          encode actual `shouldBe` encode expected+          Aeson.encode actual `shouldBe` Aeson.encode expected        it "optional" $         let@@ -242,7 +256,7 @@                     (Just (OA.AdditionalPropertiesAllowed False))             )         in-          encode actual `shouldBe` encode expected+          Aeson.encode actual `shouldBe` Aeson.encode expected        it "date-time" $         let@@ -362,7 +376,7 @@                   (Just (OA.AdditionalPropertiesAllowed False))          in-          encode actual `shouldBe` encode expected+          Aeson.encode actual `shouldBe` Aeson.encode expected   {-