on develop help sign in
Matching AST against current core client implementation
commit7556e3bd627d88a3e931b12512fd1bf6f70453dd authorBrendan Hay <brendan.g.hay@gmail.com> dateTue 6 Oct 2015, 10:26 (11 years ago) parent6b8e8c5
3 files changed+18−22
gen/src/Gen/AST/Render.hs+3−8 gen/src/Gen/Syntax.hs+14−13 gen/src/Gen/Types/Schema.hs+1−1
gen/src/Gen/AST/Render.hs+3−8
@@ -108,15 +108,10 @@ renderAPI s = do
108108 url = name (Text.unpack (urlName s))
109109
110110 serviceURL = Fun' url (Just (rawHelpText h))
111− <$> pp None (urlSig url)
112− <*> pp Print d
111+ <$> pp None (urlSig url)
112+ <*> pp Print (urlDecl s url)
113113 where
114− d | "http://" `Text.isPrefixOf` u = urlDecl url "Http" u 80
115− | otherwise = urlDecl url "Https" u 443
116−
117− u = s ^. dBaseUrl
118−
119− h = sformat ("URL referring to version @" % stext %
114+ h = sformat ("Default request referring to version @" % stext %
120115 "@ of the " % stext % ".")
121116 (s ^. dVersion) (s ^. dTitle)
122117
gen/src/Gen/Syntax.hs+14−13
@@ -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]
gen/src/Gen/Types/Schema.hs+1−1
@@ -434,4 +434,4 @@ instance HasDescription (Service a) a where
434434 description = sDescription
435435
436436urlName :: Service a -> Text
437−urlName = (<> "URL") . lowerHead . _sCanonicalName
437+urlName = (<> "Request") . lowerHead . _sCanonicalName