packages feed

servant-foreign 0.15.2 → 0.15.3

raw patch · 4 files changed

+37/−10 lines, 4 filesdep ~hspecdep ~lensnew-uploader

Dependency ranges changed: hspec, lens

Files

CHANGELOG.md view
@@ -1,6 +1,18 @@ [The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-foreign/CHANGELOG.md) [Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md) +0.15.3+------++### Significant changes++- Support `Fragment` combinator.++0.15.2+------++* Support `servant-0.18`.+ 0.15.1 ------ 
servant-foreign.cabal view
@@ -1,6 +1,6 @@ cabal-version:       >=1.10 name:                servant-foreign-version:             0.15.2+version:             0.15.3  synopsis:            Helpers for generating clients for servant APIs in any programming language category:            Servant, Web@@ -21,13 +21,7 @@ maintainer:          haskell-servant-maintainers@googlegroups.com copyright:           2015-2019 Servant Contributors build-type:          Simple-tested-with:-  GHC ==8.0.2-   || ==8.2.2-   || ==8.4.4-   || ==8.6.5-   || ==8.8.3-   || ==8.10.1+tested-with: GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.2  extra-source-files:   CHANGELOG.md
src/Servant/Foreign/Internal.hs view
@@ -84,6 +84,11 @@  type Path f = [Segment f] +newtype Frag f = Frag { unFragment :: Arg f }+  deriving (Data, Eq, Show, Typeable)++makePrisms ''Frag+ data ArgType   = Normal   | Flag@@ -115,11 +120,12 @@ data Url f = Url   { _path     :: Path f   , _queryStr :: [QueryArg f]+  , _frag     :: Maybe f   }   deriving (Data, Eq, Show, Typeable)  defUrl :: Url f-defUrl = Url [] []+defUrl = Url [] [] Nothing  makeLenses ''Url @@ -323,6 +329,16 @@       arg = Arg         { _argName = PathSegment str         , _argType = typeFor lang ftype (Proxy :: Proxy Bool) }++instance+  (HasForeignType lang ftype (Maybe a), HasForeign lang ftype api)+  => HasForeign lang ftype (Fragment a :> api) where+  type Foreign ftype (Fragment a :> api) = Foreign ftype api+  foreignFor lang Proxy Proxy req =+    foreignFor lang (Proxy :: Proxy ftype) (Proxy :: Proxy api) $+      req & reqUrl . frag .~ Just argT+    where+      argT = typeFor lang (Proxy :: Proxy ftype) (Proxy :: Proxy (Maybe a))  instance HasForeign lang ftype Raw where   type Foreign ftype Raw = HTTP.Method -> Req ftype
test/Servant/ForeignSpec.hs view
@@ -14,8 +14,8 @@ import           Data.Monoid                  ((<>)) import           Data.Proxy-import           Servant.Test.ComprehensiveAPI import           Servant.Foreign+import           Servant.Test.ComprehensiveAPI import           Servant.Types.SourceT                  (SourceT) @@ -91,6 +91,7 @@       { _reqUrl        = Url           [ Segment $ Static "test" ]           [ QueryArg (Arg "flag" "boolX") Flag ]+          Nothing       , _reqMethod     = "GET"       , _reqHeaders    = [HeaderArg $ Arg "header" "maybe listX of stringX"]       , _reqBody       = Nothing@@ -103,6 +104,7 @@       { _reqUrl        = Url           [ Segment $ Static "test" ]           [ QueryArg (Arg "param" "maybe intX") Normal ]+          Nothing       , _reqMethod     = "POST"       , _reqHeaders    = []       , _reqBody       = Just "listX of stringX"@@ -116,6 +118,7 @@           [ Segment $ Static "test" ]           -- Should this be |intX| or |listX of intX| ?           [ QueryArg (Arg "params" "listX of intX") List ]+          Nothing       , _reqMethod     = "PUT"       , _reqHeaders    = []       , _reqBody       = Just "stringX"@@ -129,6 +132,7 @@           [ Segment $ Static "test"           , Segment $ Cap (Arg "id" "intX") ]           []+          Nothing       , _reqMethod     = "DELETE"       , _reqHeaders    = []       , _reqBody       = Nothing@@ -142,6 +146,7 @@           [ Segment $ Static "test"           , Segment $ Cap (Arg "ids" "listX of intX") ]           []+          Nothing       , _reqMethod     = "GET"       , _reqHeaders    = []       , _reqBody       = Nothing