introduce type ReqBodyContentType replacing use of Bool

This commit is contained in:
Andrew Cady 2018-09-17 17:19:41 -04:00
parent 19378364dc
commit c07f86bda7
2 changed files with 13 additions and 9 deletions

View file

@ -5,6 +5,7 @@ module Servant.Foreign
, HeaderArg(..) , HeaderArg(..)
, QueryArg(..) , QueryArg(..)
, Req(..) , Req(..)
, ReqBodyContentType(..)
, Segment(..) , Segment(..)
, SegmentType(..) , SegmentType(..)
, Url(..) , Url(..)
@ -21,7 +22,7 @@ module Servant.Foreign
, reqMethod , reqMethod
, reqHeaders , reqHeaders
, reqBody , reqBody
, reqBodyIsJSON , reqBodyContentType
, reqReturnType , reqReturnType
, reqFuncName , reqFuncName
, path , path

View file

@ -123,21 +123,24 @@ defUrl = Url [] []
makeLenses ''Url makeLenses ''Url
data ReqBodyContentType = ReqBodyJSON | ReqBodyMultipart
deriving (Data, Eq, Show, Read)
data Req f = Req data Req f = Req
{ _reqUrl :: Url f { _reqUrl :: Url f
, _reqMethod :: HTTP.Method , _reqMethod :: HTTP.Method
, _reqHeaders :: [HeaderArg f] , _reqHeaders :: [HeaderArg f]
, _reqBody :: Maybe f , _reqBody :: Maybe f
, _reqReturnType :: Maybe f , _reqReturnType :: Maybe f
, _reqFuncName :: FunctionName , _reqFuncName :: FunctionName
, _reqBodyIsJSON :: Bool , _reqBodyContentType :: ReqBodyContentType
} }
deriving (Data, Eq, Show, Typeable) deriving (Data, Eq, Show, Typeable)
makeLenses ''Req makeLenses ''Req
defReq :: Req ftype defReq :: Req ftype
defReq = Req defUrl "GET" [] Nothing Nothing (FunctionName []) True defReq = Req defUrl "GET" [] Nothing Nothing (FunctionName []) ReqBodyJSON
-- | 'HasForeignType' maps Haskell types with types in the target -- | 'HasForeignType' maps Haskell types with types in the target
-- language of your backend. For example, let's say you're -- language of your backend. For example, let's say you're