Merge pull request #1035 from afcady/multipart-foreign

Implement HasForeign instance
This commit is contained in:
Oleg Grenrus 2018-11-07 14:34:58 +02:00 committed by GitHub
commit 80a047d1d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View File

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

View File

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