More reorganization
This commit is contained in:
parent
95fac329a6
commit
35599d8b38
13 changed files with 53 additions and 49 deletions
|
@ -9,6 +9,7 @@ author: Servant Contributors
|
||||||
maintainer: haskell-servant-maintainers@googlegroups.com
|
maintainer: haskell-servant-maintainers@googlegroups.com
|
||||||
homepage: http://haskell-servant.readthedocs.org/
|
homepage: http://haskell-servant.readthedocs.org/
|
||||||
bug-reports: http://github.com/haskell-servant/servant/issues
|
bug-reports: http://github.com/haskell-servant/servant/issues
|
||||||
|
cabal-version: >=1.10
|
||||||
-- copyright:
|
-- copyright:
|
||||||
category: Web
|
category: Web
|
||||||
build-type: Simple
|
build-type: Simple
|
||||||
|
@ -19,15 +20,34 @@ extra-source-files:
|
||||||
source-repository head
|
source-repository head
|
||||||
type: git
|
type: git
|
||||||
location: http://github.com/haskell-servant/servant.git
|
location: http://github.com/haskell-servant/servant.git
|
||||||
cabal-version: >=1.10
|
|
||||||
|
|
||||||
library
|
library
|
||||||
exposed-modules:
|
exposed-modules:
|
||||||
|
Servant.Client.Core
|
||||||
|
Servant.Client.Core.Internal.Auth
|
||||||
|
Servant.Client.Core.Internal.BaseUrl
|
||||||
|
Servant.Client.Core.Internal.BasicAuth
|
||||||
|
Servant.Client.Core.Internal.Class
|
||||||
|
Servant.Client.Core.Internal.Generic
|
||||||
|
Servant.Client.Core.Internal.Request
|
||||||
build-depends:
|
build-depends:
|
||||||
base >= 4.7 && < 4.11
|
base >= 4.7 && < 4.11
|
||||||
, base-compat >= 0.9.1 && < 0.10
|
, base-compat >= 0.9.1 && < 0.10
|
||||||
|
, base64-bytestring >= 1.0.0.1 && < 1.1
|
||||||
|
, bytestring >= 0.10 && < 0.11
|
||||||
|
, containers >= 0.5 && < 0.6
|
||||||
|
, exceptions >= 0.8 && < 0.9
|
||||||
|
, generics-sop >= 0.1.0.0 && < 0.4
|
||||||
|
, http-api-data >= 0.3.6 && < 0.4
|
||||||
|
, http-media >= 0.6.2 && < 0.8
|
||||||
|
, http-types >= 0.8.6 && < 0.10
|
||||||
|
, network-uri >= 2.6 && < 2.7
|
||||||
|
, safe >= 0.3.9 && < 0.4
|
||||||
|
, servant == 0.11.*
|
||||||
|
, text >= 1.2 && < 1.3
|
||||||
hs-source-dirs: src
|
hs-source-dirs: src
|
||||||
default-language: Haskell2010
|
default-language: Haskell2010
|
||||||
|
include-dirs: include
|
||||||
|
|
||||||
test-suite spec
|
test-suite spec
|
||||||
type: exitcode-stdio-1.0
|
type: exitcode-stdio-1.0
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
-- | This module provides 'client' which can automatically generate
|
-- | This module provides 'client' which can automatically generate
|
||||||
-- querying functions for each endpoint just from the type representing your
|
-- querying functions for each endpoint just from the type representing your
|
||||||
-- API.
|
-- API.
|
||||||
module Servant.Client
|
module Servant.Client.Core
|
||||||
( AuthClientData
|
( AuthClientData
|
||||||
, AuthenticateReq(..)
|
, AuthenticateReq(..)
|
||||||
, client
|
, client
|
|
@ -4,13 +4,9 @@
|
||||||
|
|
||||||
-- | Authentication for clients
|
-- | Authentication for clients
|
||||||
|
|
||||||
module Servant.Client.Experimental.Auth (
|
module Servant.Client.Core.Internal.Auth where
|
||||||
AuthenticateReq(AuthenticateReq, unAuthReq)
|
|
||||||
, AuthClientData
|
|
||||||
, mkAuthenticateReq
|
|
||||||
) where
|
|
||||||
|
|
||||||
import Servant.Common.Req (Request)
|
import Servant.Client.Core.Internal.Request (Request)
|
||||||
|
|
||||||
-- | For a resource protected by authentication (e.g. AuthProtect), we need
|
-- | For a resource protected by authentication (e.g. AuthProtect), we need
|
||||||
-- to provide the client with some data used to add authentication data
|
-- to provide the client with some data used to add authentication data
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{-# LANGUAGE DeriveDataTypeable #-}
|
{-# LANGUAGE DeriveDataTypeable #-}
|
||||||
{-# LANGUAGE DeriveGeneric #-}
|
{-# LANGUAGE DeriveGeneric #-}
|
||||||
{-# LANGUAGE ViewPatterns #-}
|
{-# LANGUAGE ViewPatterns #-}
|
||||||
module Servant.Common.BaseUrl (
|
module Servant.Client.Core.Internal.BaseUrl (
|
||||||
-- * types
|
-- * types
|
||||||
BaseUrl (..)
|
BaseUrl (..)
|
||||||
, InvalidBaseUrlException
|
, InvalidBaseUrlException
|
||||||
|
|
|
@ -4,14 +4,12 @@
|
||||||
|
|
||||||
-- | Basic Authentication for clients
|
-- | Basic Authentication for clients
|
||||||
|
|
||||||
module Servant.Common.BasicAuth (
|
module Servant.Client.Core.Internal.BasicAuth where
|
||||||
basicAuthReq
|
|
||||||
) where
|
|
||||||
|
|
||||||
import Data.ByteString.Base64 (encode)
|
import Data.ByteString.Base64 (encode)
|
||||||
import Data.Monoid ((<>))
|
import Data.Monoid ((<>))
|
||||||
import Data.Text.Encoding (decodeUtf8)
|
import Data.Text.Encoding (decodeUtf8)
|
||||||
import Servant.Common.Req (addHeader, Request)
|
import Servant.Client.Core.Internal.Request (addHeader, Request)
|
||||||
import Servant.API.BasicAuth (BasicAuthData(BasicAuthData))
|
import Servant.API.BasicAuth (BasicAuthData(BasicAuthData))
|
||||||
|
|
||||||
-- | Authenticate a request using Basic Authentication
|
-- | Authenticate a request using Basic Authentication
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{-# LANGUAGE MultiParamTypeClasses #-}
|
{-# LANGUAGE MultiParamTypeClasses #-}
|
||||||
{-| Types for possible backends to run client-side `Request` queries -}
|
{-| Types for possible backends to run client-side `Request` queries -}
|
||||||
module Servant.Client.Class where
|
module Servant.Client.Core.Internal.Class where
|
||||||
|
|
||||||
import Data.Proxy
|
import Data.Proxy
|
||||||
import Network.HTTP.Types
|
import Network.HTTP.Types
|
||||||
import Servant.Common.Req (Request, Response)
|
import Servant.Client.Core.Internal.Request (Request, Response)
|
||||||
|
|
||||||
class (Monad m) => RunClient m ct where
|
class (Monad m) => RunClient m ct where
|
||||||
runRequest :: Proxy ct
|
runRequest :: Proxy ct
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
#include "overlapping-compat.h"
|
#include "overlapping-compat.h"
|
||||||
|
|
||||||
module Servant.Client.Generic
|
module Servant.Client.Core.Internal.Generic
|
||||||
( ClientLike(..)
|
( ClientLike(..)
|
||||||
, genericMkClientL
|
, genericMkClientL
|
||||||
, genericMkClientP
|
, genericMkClientP
|
||||||
|
@ -18,7 +18,6 @@ module Servant.Client.Generic
|
||||||
|
|
||||||
import Generics.SOP (Code, Generic, I(..), NP(..), NS(Z), SOP(..), to)
|
import Generics.SOP (Code, Generic, I(..), NP(..), NS(Z), SOP(..), to)
|
||||||
import Servant.API ((:<|>)(..))
|
import Servant.API ((:<|>)(..))
|
||||||
import Servant.Client (ClientM)
|
|
||||||
|
|
||||||
-- | This class allows us to match client structure with client functions
|
-- | This class allows us to match client structure with client functions
|
||||||
-- produced with 'client' without explicit pattern-matching.
|
-- produced with 'client' without explicit pattern-matching.
|
||||||
|
@ -111,7 +110,7 @@ instance ClientLike client custom
|
||||||
=> ClientLike (a -> client) (a -> custom) where
|
=> ClientLike (a -> client) (a -> custom) where
|
||||||
mkClient c = mkClient . c
|
mkClient c = mkClient . c
|
||||||
|
|
||||||
instance ClientLike (ClientM a) (ClientM a) where
|
instance ClientLike (m a) (m a) where
|
||||||
mkClient = id
|
mkClient = id
|
||||||
|
|
||||||
-- | Match client structure with client functions, regarding left-nested API clients
|
-- | Match client structure with client functions, regarding left-nested API clients
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
{-# LANGUAGE ScopedTypeVariables #-}
|
{-# LANGUAGE ScopedTypeVariables #-}
|
||||||
{-# LANGUAGE TypeFamilies #-}
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
|
||||||
module Servant.Common.Request where
|
module Servant.Client.Core.Internal.Request where
|
||||||
|
|
||||||
import Prelude ()
|
import Prelude ()
|
||||||
import Prelude.Compat
|
import Prelude.Compat
|
||||||
|
@ -16,13 +16,12 @@ import qualified Data.ByteString.Builder as Builder
|
||||||
import qualified Data.ByteString.Lazy as LBS
|
import qualified Data.ByteString.Lazy as LBS
|
||||||
import Data.Semigroup ((<>))
|
import Data.Semigroup ((<>))
|
||||||
import qualified Data.Sequence as Seq
|
import qualified Data.Sequence as Seq
|
||||||
import Data.String.Conversions (cs)
|
|
||||||
import Data.Text (Text)
|
import Data.Text (Text)
|
||||||
import Data.Typeable (Typeable)
|
import Data.Typeable (Typeable)
|
||||||
import GHC.Generics (Generic)
|
import GHC.Generics (Generic)
|
||||||
import Network.HTTP.Media (MediaType)
|
import Network.HTTP.Media (MediaType)
|
||||||
import Network.HTTP.Types (Header, HeaderName, HttpVersion,
|
import Network.HTTP.Types (Header, HeaderName, HttpVersion,
|
||||||
Method, QueryItem, Status, http11)
|
QueryItem, Status, http11)
|
||||||
import Web.HttpApiData (ToHttpApiData, toEncodedUrlPiece,
|
import Web.HttpApiData (ToHttpApiData, toEncodedUrlPiece,
|
||||||
toHeader)
|
toHeader)
|
||||||
|
|
||||||
|
@ -126,21 +125,22 @@ setRequestBody b t req = req { requestBody = Just (b, t) }
|
||||||
{-toProperHeader (name, val) =-}
|
{-toProperHeader (name, val) =-}
|
||||||
{-(fromString name, encodeUtf8 val)-}
|
{-(fromString name, encodeUtf8 val)-}
|
||||||
|
|
||||||
#if !MIN_VERSION_http_client(0,4,30)
|
|
||||||
-- 'parseRequest' is introduced in http-client-0.4.30
|
{- #if !MIN_VERSION_http_client(0,4,30)-}
|
||||||
-- it differs from 'parseUrl', by not throwing exceptions on non-2xx http statuses
|
{--- 'parseRequest' is introduced in http-client-0.4.30-}
|
||||||
--
|
{--- it differs from 'parseUrl', by not throwing exceptions on non-2xx http statuses-}
|
||||||
-- See for implementations:
|
{----}
|
||||||
-- http://hackage.haskell.org/package/http-client-0.4.30/docs/src/Network-HTTP-Client-Request.html#parseRequest
|
{--- See for implementations:-}
|
||||||
-- http://hackage.haskell.org/package/http-client-0.5.0/docs/src/Network-HTTP-Client-Request.html#parseRequest
|
{--- http://hackage.haskell.org/package/http-client-0.4.30/docs/src/Network-HTTP-Client-Request.html#parseRequest-}
|
||||||
parseRequest :: MonadThrow m => String -> m Request
|
{--- http://hackage.haskell.org/package/http-client-0.5.0/docs/src/Network-HTTP-Client-Request.html#parseRequest-}
|
||||||
parseRequest url = liftM disableStatusCheck (parseUrl url)
|
{-parseRequest :: MonadThrow m => String -> m Request-}
|
||||||
where
|
{-parseRequest url = liftM disableStatusCheck (parseUrl url)-}
|
||||||
disableStatusCheck req = req { checkStatus = \ _status _headers _cookies -> Nothing }
|
{-where-}
|
||||||
#endif
|
{-disableStatusCheck req = req { checkStatus = \ _status _headers _cookies -> Nothing }-}
|
||||||
|
{- #endif-}
|
||||||
|
|
||||||
|
|
||||||
-- * performing requests
|
{--- * performing requests-}
|
||||||
|
|
||||||
displayHttpRequest :: Method -> String
|
{-displayHttpRequest :: Method -> String-}
|
||||||
displayHttpRequest httpmethod = "HTTP " ++ cs httpmethod ++ " request"
|
{-displayHttpRequest httpmethod = "HTTP " ++ cs httpmethod ++ " request"-}
|
||||||
|
|
|
@ -42,23 +42,10 @@ library
|
||||||
, base-compat >= 0.9.1 && < 0.10
|
, base-compat >= 0.9.1 && < 0.10
|
||||||
, aeson >= 0.7 && < 1.3
|
, aeson >= 0.7 && < 1.3
|
||||||
, attoparsec >= 0.12 && < 0.14
|
, attoparsec >= 0.12 && < 0.14
|
||||||
, base64-bytestring >= 1.0.0.1 && < 1.1
|
|
||||||
, bytestring >= 0.10 && < 0.11
|
|
||||||
, containers >= 0.5 && < 0.6
|
|
||||||
, exceptions >= 0.8 && < 0.9
|
|
||||||
, generics-sop >= 0.1.0.0 && < 0.4
|
|
||||||
, http-api-data >= 0.3.6 && < 0.4
|
|
||||||
, http-client >= 0.4.18.1 && < 0.6
|
, http-client >= 0.4.18.1 && < 0.6
|
||||||
, http-client-tls >= 0.2.2 && < 0.4
|
, http-client-tls >= 0.2.2 && < 0.4
|
||||||
, http-media >= 0.6.2 && < 0.8
|
|
||||||
, http-types >= 0.8.6 && < 0.10
|
|
||||||
, monad-control >= 1.0.0.4 && < 1.1
|
, monad-control >= 1.0.0.4 && < 1.1
|
||||||
, network-uri >= 2.6 && < 2.7
|
|
||||||
, safe >= 0.3.9 && < 0.4
|
|
||||||
, semigroupoids >= 4.3 && < 5.3
|
, semigroupoids >= 4.3 && < 5.3
|
||||||
, servant == 0.11.*
|
|
||||||
, string-conversions >= 0.3 && < 0.5
|
|
||||||
, text >= 1.2 && < 1.3
|
|
||||||
, transformers >= 0.3 && < 0.6
|
, transformers >= 0.3 && < 0.6
|
||||||
, transformers-base >= 0.4.4 && < 0.5
|
, transformers-base >= 0.4.4 && < 0.5
|
||||||
, transformers-compat >= 0.4 && < 0.6
|
, transformers-compat >= 0.4 && < 0.6
|
||||||
|
|
|
@ -2,6 +2,7 @@ flags: {}
|
||||||
packages:
|
packages:
|
||||||
- servant/
|
- servant/
|
||||||
- servant-client/
|
- servant-client/
|
||||||
|
- servant-client-core/
|
||||||
- servant-docs/
|
- servant-docs/
|
||||||
- servant-foreign/
|
- servant-foreign/
|
||||||
- servant-server/
|
- servant-server/
|
||||||
|
|
|
@ -2,6 +2,7 @@ flags: {}
|
||||||
packages:
|
packages:
|
||||||
- servant/
|
- servant/
|
||||||
- servant-client/
|
- servant-client/
|
||||||
|
- servant-client-core/
|
||||||
- servant-docs/
|
- servant-docs/
|
||||||
- servant-foreign/
|
- servant-foreign/
|
||||||
- servant-server/
|
- servant-server/
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
resolver: nightly-2017-09-01
|
resolver: nightly-2017-09-01
|
||||||
packages:
|
packages:
|
||||||
- servant-client/
|
- servant-client/
|
||||||
|
- servant-client-core/
|
||||||
- servant-docs/
|
- servant-docs/
|
||||||
- servant-foreign/
|
- servant-foreign/
|
||||||
- servant-server/
|
- servant-server/
|
||||||
|
|
|
@ -2,6 +2,7 @@ resolver: nightly-2017-04-01
|
||||||
packages:
|
packages:
|
||||||
- servant/
|
- servant/
|
||||||
- servant-client/
|
- servant-client/
|
||||||
|
- servant-client-core/
|
||||||
- servant-docs/
|
- servant-docs/
|
||||||
- servant-foreign/
|
- servant-foreign/
|
||||||
- servant-server/
|
- servant-server/
|
||||||
|
|
Loading…
Reference in a new issue