{-# 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)"}