git.iko.soy/typeable/servant
on master help sign in
Parametrize Request
30528a8Julian K. Arni
servant-client-core/src/Servant/Client/Core.hs+2−1
@@ -20,7 +20,8 @@ module Servant.Client.Core
20 , HasClient(..)
20 , HasClient(..)
21
21
22 -- * Request
22 -- * Request
23− , Request(..)
23+ , Request
24+ , RequestF(..)
24 , defaultRequest
25 , defaultRequest
25 , RequestBody(..)
26 , RequestBody(..)
26
27
servant-client-core/src/Servant/Client/Core/Internal/Request.hs+6−3
@@ -1,6 +1,7 @@
1{-# LANGUAGE CPP #-}
1{-# LANGUAGE CPP #-}
2{-# LANGUAGE DeriveDataTypeable #-}
2{-# LANGUAGE DeriveDataTypeable #-}
3{-# LANGUAGE DeriveGeneric #-}
3{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE DeriveFunctor #-}
4{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5{-# LANGUAGE GeneralizedNewtypeDeriving #-}
5{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE MultiParamTypeClasses #-}
6{-# LANGUAGE OverloadedStrings #-}
7{-# LANGUAGE OverloadedStrings #-}
@@ -43,15 +44,17 @@ data ServantError =
43 | ConnectionError Text
44 | ConnectionError Text
44 deriving (Eq, Show, Generic, Typeable)
45 deriving (Eq, Show, Generic, Typeable)
45
46
46−data Request = Request
47+data RequestF a = Request
47− { requestPath :: Builder.Builder
48+ { requestPath :: a
48 , requestQueryString :: Seq.Seq QueryItem
49 , requestQueryString :: Seq.Seq QueryItem
49 , requestBody :: Maybe (RequestBody, MediaType)
50 , requestBody :: Maybe (RequestBody, MediaType)
50 , requestAccept :: Seq.Seq MediaType
51 , requestAccept :: Seq.Seq MediaType
51 , requestHeaders :: Seq.Seq Header
52 , requestHeaders :: Seq.Seq Header
52 , requestHttpVersion :: HttpVersion
53 , requestHttpVersion :: HttpVersion
53 , requestMethod :: Method
54 , requestMethod :: Method
54− } deriving (Generic, Typeable)
55+ } deriving (Eq, Show, Functor, Generic, Typeable)
56+
57+type Request = RequestF Builder.Builder
55
58
56-- | The request body. Currently only lazy ByteStrings are supported.
59-- | The request body. Currently only lazy ByteStrings are supported.
57newtype RequestBody = RequestBodyLBS LBS.ByteString
60newtype RequestBody = RequestBodyLBS LBS.ByteString