yesod-dsl-0.2.1: codegen/hs-client-handler-update.cg
{-# LANGUAGE TemplateHaskell #-}
module ~{moduleName m}Client.~{handlerEntityName} where
import qualified Data.Aeson as A
import qualified Network.Wreq as W
import qualified Network.Wreq.Session as WS
import qualified Network.Wreq.Types as WT
import qualified Data.Aeson.TH as AT
import ~{moduleName m}Client.Types
import ~{moduleName m}Client.Enums
import ~{moduleName m}Client.Json
data Request = Request {
~{indent 4 $ intercalate ",\n" $ map inputField $ handlerInputFields h}}
$(AT.deriveJSON AT.defaultOptions ''Request)
~{defineResultType}
~{methodName} :: WS.Session -> WT.Options -> String~{concatMap (prepend " -> ") $ map snd $ routePathParams r}~{ifBodyAllowed " -> Request"} -> IO (W.Response Result)
~{methodName} s opts baseUrl~{concatMap (prepend " ") $ map fst $ routePathParams r}~{ifBodyAllowed " request"} = W.asJSON =<< WS.~{methodName}With opts s (baseUrl~{routePathUrl r}) ~{ifBodyAllowed "(A.toJSON request)"}