git.iko.soy/typeable/servant
on master help sign in
Merge pull request #1035 from afcady/multipart-foreign

Implement HasForeign instance

commit80a047d1d43506241b28305b0e34698b6ce39339 authorOleg Grenrus <oleg.grenrus@iki.fi> dateWed 7 Nov 2018, 14:34 (8 years ago) parentda2af9fc07f86b
2 files changed+13−7
servant-foreign/src/Servant/Foreign.hs+2 servant-foreign/src/Servant/Foreign/Internal.hs+11−7
servant-foreign/src/Servant/Foreign.hs+2
@@ -5,6 +5,7 @@ module Servant.Foreign
55 , HeaderArg(..)
66 , QueryArg(..)
77 , Req(..)
8+ , ReqBodyContentType(..)
89 , Segment(..)
910 , SegmentType(..)
1011 , Url(..)
@@ -21,6 +22,7 @@ module Servant.Foreign
2122 , reqMethod
2223 , reqHeaders
2324 , reqBody
25+ , reqBodyContentType
2426 , reqReturnType
2527 , reqFuncName
2628 , path
servant-foreign/src/Servant/Foreign/Internal.hs+11−7
@@ -123,20 +123,24 @@ defUrl = Url [] []
123123
124124makeLenses ''Url
125125
126+data ReqBodyContentType = ReqBodyJSON | ReqBodyMultipart
127+ deriving (Data, Eq, Show, Read)
128+
126129data Req f = Req
127− { _reqUrl :: Url f
128− , _reqMethod :: HTTP.Method
129− , _reqHeaders :: [HeaderArg f]
130− , _reqBody :: Maybe f
131− , _reqReturnType :: Maybe f
132− , _reqFuncName :: FunctionName
130+ { _reqUrl :: Url f
131+ , _reqMethod :: HTTP.Method
132+ , _reqHeaders :: [HeaderArg f]
133+ , _reqBody :: Maybe f
134+ , _reqReturnType :: Maybe f
135+ , _reqFuncName :: FunctionName
136+ , _reqBodyContentType :: ReqBodyContentType
133137 }
134138 deriving (Data, Eq, Show, Typeable)
135139
136140makeLenses ''Req
137141
138142defReq :: Req ftype
139−defReq = Req defUrl "GET" [] Nothing Nothing (FunctionName [])
143+defReq = Req defUrl "GET" [] Nothing Nothing (FunctionName []) ReqBodyJSON
140144
141145-- | 'HasForeignType' maps Haskell types with types in the target
142146-- language of your backend. For example, let's say you're