@@ -34,12 +34,15 @@ import Language.Haskell.Exts.SrcLoc
3434import Language.Haskell.Exts.Syntax hiding (Alt, Int, Lit)
3535
3636urlSig :: Name -> Decl
37−urlSig n = TypeSig noLoc [n] (TyCon "BaseUrl")
37+urlSig n = TypeSig noLoc [n] (TyCon "RequestBuilder")
3838
39−urlDecl :: Name -> String -> Text -> Integer -> Decl
40−urlDecl n s u p = sfun noLoc n [] (UnGuardedRhs rhs) noBinds
39+urlDecl :: Service a -> Name -> Decl
40+urlDecl s n = sfun noLoc n [] (UnGuardedRhs rhs) noBinds
4141 where
42− rhs = appFun (var "BaseUrl") [var (name s), str u, intE p]
42+ rhs = appFun (var "defaultRequest")
43+ [ str (s ^. dRootUrl)
44+ , str (s ^. dServicePath)
45+ ]
4346
4447 -- type API = :<|> ...
4548apiAlias :: Name -> [Name] -> Decl
@@ -183,23 +186,21 @@ googleRequestDecl g n assoc alt p api url fields m pat prec =
183186 InstDecl noLoc Nothing [] [] (unqual "GoogleRequest") [n]
184187 [ assoc
185188 , request
186− , requestWithRoute
189+ , requestWith
187190 ]
188191 where
189− request = funD "request" $
190− appFun (var "requestWithRoute") [var "defReq", var url]
192+ request = funD "request" $ app (var "requestWith") (var url)
191193
192− requestWithRoute = InsDecl (FunBind [match])
194+ requestWith = InsDecl (FunBind [match])
193195 where
194− match = Match noLoc (name "requestWithRoute") pats Nothing rhs decls
196+ match = Match noLoc (name "requestWith") pats Nothing rhs decls
195197
196198 decls = BDecls
197199 [ patBind noLoc pat $
198− appFun (var "clientWithRoute") $
200+ appFun (var "clientBuild") $
199201 [ ExpTypeSig noLoc (var "Proxy") $
200202 TyApp (TyCon "Proxy") (TyCon (UnQual api))
201− , var "r"
202− , var "u"
203+ , var "rq"
203204 ]
204205 ]
205206
@@ -237,7 +238,7 @@ googleRequestDecl g n assoc alt p api url fields m pat prec =
237238 . nub
238239 $ map fst (rights (extractPath (_mPath m))) ++ _mParameterOrder m
239240
240− pats = [pvar "r", pvar "u", prec]
241+ pats = [pvar "rq", prec]
241242
242243authDecl :: Global -> Prefix -> [Local] -> Decl
243244authDecl g p fs = InstDecl noLoc Nothing [] [] (unqual "GoogleAuth") [tycon g]