From 30528a8198f961a95be4dd95c8a0d810050f5f5d Mon Sep 17 00:00:00 2001 From: "Julian K. Arni" Date: Thu, 14 Sep 2017 13:17:19 -0400 Subject: [PATCH] Parametrize Request --- servant-client-core/src/Servant/Client/Core.hs | 3 ++- .../src/Servant/Client/Core/Internal/Request.hs | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/servant-client-core/src/Servant/Client/Core.hs b/servant-client-core/src/Servant/Client/Core.hs index 8a5cd6dd..84ae9660 100644 --- a/servant-client-core/src/Servant/Client/Core.hs +++ b/servant-client-core/src/Servant/Client/Core.hs @@ -20,7 +20,8 @@ module Servant.Client.Core , HasClient(..) -- * Request - , Request(..) + , Request + , RequestF(..) , defaultRequest , RequestBody(..) diff --git a/servant-client-core/src/Servant/Client/Core/Internal/Request.hs b/servant-client-core/src/Servant/Client/Core/Internal/Request.hs index 4d9475d1..3f5bc0a0 100644 --- a/servant-client-core/src/Servant/Client/Core/Internal/Request.hs +++ b/servant-client-core/src/Servant/Client/Core/Internal/Request.hs @@ -1,6 +1,7 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} @@ -43,15 +44,17 @@ data ServantError = | ConnectionError Text deriving (Eq, Show, Generic, Typeable) -data Request = Request - { requestPath :: Builder.Builder +data RequestF a = Request + { requestPath :: a , requestQueryString :: Seq.Seq QueryItem , requestBody :: Maybe (RequestBody, MediaType) , requestAccept :: Seq.Seq MediaType , requestHeaders :: Seq.Seq Header , requestHttpVersion :: HttpVersion , requestMethod :: Method - } deriving (Generic, Typeable) + } deriving (Eq, Show, Functor, Generic, Typeable) + +type Request = RequestF Builder.Builder -- | The request body. Currently only lazy ByteStrings are supported. newtype RequestBody = RequestBodyLBS LBS.ByteString