packages feed

api-builder 0.15.0.0 → 0.16.0.0

raw patch · 3 files changed

+57/−44 lines, 3 filesdep +QuickCheckdep ~aesondep ~basedep ~http-clientPVP ok

version bump matches the API change (PVP)

Dependencies added: QuickCheck

Dependency ranges changed: aeson, base, http-client

API changes (from Hackage documentation)

- Network.API.Builder.Query: instance Network.API.Builder.Query.ToQuery a => Network.API.Builder.Query.ToQuery (GHC.Base.Maybe a)
+ Network.API.Builder.Error: instance GHC.Base.Semigroup (Network.API.Builder.Error.APIError a)
+ Network.API.Builder.Query: instance Network.API.Builder.Query.ToQuery a => Network.API.Builder.Query.ToQuery (GHC.Maybe.Maybe a)

Files

api-builder.cabal view
@@ -1,11 +1,5 @@--- This file has been generated from package.yaml by hpack version 0.20.0.------ see: https://github.com/sol/hpack------ hash: 7c4b7181e34f5c26900835396c9c93f9249c246a35bacfea6a01f9a84dff464b- name:           api-builder-version:        0.15.0.0+version:        0.16.0.0 synopsis:       Library for easily building REST API wrappers in Haskell category:       Network homepage:       https://github.com/intolerable/api-builder@@ -22,22 +16,23 @@   location: git://github.com/intolerable/api-builder.git  library-  hs-source-dirs:-      src-  default-extensions: OverloadedStrings FlexibleInstances+  hs-source-dirs: src/+  default-extensions:+    OverloadedStrings+    FlexibleInstances   ghc-options: -Wall   build-depends:-      HTTP ==4000.*-    , aeson >=0.9 && <1.3-    , base >=4.6 && <4.12-    , bifunctors >=4.0 && <6.0-    , bytestring ==0.10.*-    , http-client >=0.4.30 && <0.6-    , http-client-tls >=0.2 && <0.4-    , http-types >=0.8 && <0.13-    , text ==1.*-    , tls >=1.3 && <1.5-    , transformers >=0.4 && <0.6+    HTTP ==4000.*,+    aeson >=0.9 && <1.5,+    base >=4.6 && <4.14,+    bifunctors >=4.0 &&< 6.0,+    bytestring ==0.10.*,+    http-client >=0.4.30 && <0.7,+    http-client-tls >=0.2 && <0.4,+    http-types >=0.8 && <0.13,+    text ==1.*,+    tls >=1.3 && <1.5,+    transformers >=0.4 && <0.6   exposed-modules:       Network.API.Builder       Network.API.Builder.API@@ -56,33 +51,32 @@ test-suite test   type: exitcode-stdio-1.0   main-is: Spec.hs-  hs-source-dirs:-      test+  hs-source-dirs: test/   default-extensions: OverloadedStrings FlexibleInstances ScopedTypeVariables   ghc-options: -Wall   build-depends:-      Cabal >=1.16.0-    , aeson-    , api-builder-    , base ==4.*-    , bytestring-    , hspec-    , http-client-    , text-    , transformers+    Cabal >=1.16.0,+    aeson,+    api-builder,+    base ==4.*,+    bytestring,+    hspec,+    http-client,+    QuickCheck,+    text,+    transformers   other-modules:-      Network.API.Builder.ErrorSpec-      Network.API.Builder.QuerySpec-      Network.API.Builder.RoutesSpec-      Network.API.Builder.SendSpec-      Paths_api_builder+    Network.API.Builder.ErrorSpec+    Network.API.Builder.QuerySpec+    Network.API.Builder.RoutesSpec+    Network.API.Builder.SendSpec+    Paths_api_builder   default-language: Haskell2010  test-suite test-io   type: exitcode-stdio-1.0   main-is: Spec.hs-  hs-source-dirs:-      test-io+  hs-source-dirs: test-io/   default-extensions: OverloadedStrings FlexibleInstances LambdaCase   ghc-options: -Wall   build-depends:@@ -96,6 +90,6 @@     , text     , transformers   other-modules:-      Network.API.Builder.Examples.StackOverflowSpec-      Paths_api_builder+    Network.API.Builder.Examples.StackOverflowSpec+    Paths_api_builder   default-language: Haskell2010
src/Network/API/Builder/Error.hs view
@@ -1,7 +1,7 @@ module Network.API.Builder.Error   ( APIError(..) ) where -import Data.Monoid+import Data.Semigroup import Network.HTTP.Client (HttpException) import Prelude @@ -23,9 +23,13 @@   (APIError a) == (APIError b) = a == b   InvalidURLError == InvalidURLError = True   (ParseError a) == (ParseError b) = a == b+  EmptyError == EmptyError = True   _ == _ = False +instance Semigroup (APIError a) where+  EmptyError <> x = x+  x <> _ = x+ instance Monoid (APIError a) where   mempty = EmptyError-  EmptyError `mappend` x = x-  x `mappend` _ = x+  mappend = (<>)
test/Network/API/Builder/ErrorSpec.hs view
@@ -1,13 +1,24 @@+{-# OPTIONS_GHC -fno-warn-orphans #-} module Network.API.Builder.ErrorSpec where +import Data.Semigroup ((<>)) import Network.API.Builder.Error  import Test.Hspec import Test.Hspec.QuickCheck+import Test.QuickCheck  main :: IO () main = hspec spec +instance Arbitrary a => Arbitrary (APIError a) where+  arbitrary = oneof+    [ APIError <$> arbitrary+    , pure InvalidURLError+    , ParseError <$> arbitrary+    , pure EmptyError+    ]+ spec :: Spec spec =   describe "APIError" $ do@@ -23,3 +34,7 @@        prop "APIError x == APIError x" $ \(x :: String) ->         APIError x == APIError x++    describe "Semigroup" $ do+      prop "(x <> y) <> z == x <> (y <> z)" $ \(x :: APIError ()) y z ->+        (x <> y) <> z == x <> (y <> z)