on develop help sign in
Differentiating between request and response bodies
c327699Brendan Hay
gen/src/Gen/AST/Solve.hs+2−1
@@ -133,7 +133,8 @@ getDerive g = loc "getDerive" g $ memo derived g go
133 Bool -> enum
133 Bool -> enum
134 Time -> DRead : base
134 Time -> DRead : base
135 Date -> DRead : base
135 Date -> DRead : base
136− Body -> []
136+ RqBody -> [DIsString, DMonoid]
137+ RsBody -> []
137 Alt _ -> DRead : base
138 Alt _ -> DRead : base
138 JSONValue -> DRead : base
139 JSONValue -> DRead : base
139 -- FIXME: Add numeric cases
140 -- FIXME: Add numeric cases
gen/src/Gen/Syntax.hs+10−6
@@ -116,13 +116,13 @@ verbAlias n m
116 , _mSupportsMediaUpload m =
116 , _mSupportsMediaUpload m =
117 [TyApp (TyApp (TyApp (TyCon "MultipartRelated") json)
117 [TyApp (TyApp (TyApp (TyCon "MultipartRelated") json)
118 (tycon (ref b)))
118 (tycon (ref b)))
119− (TyCon "Stream")]
119+ (TyCon "Body")]
120
120
121 | Just b <- _mRequest m =
121 | Just b <- _mRequest m =
122 [TyApp (TyApp (TyCon "ReqBody") json) (tycon (ref b))]
122 [TyApp (TyApp (TyCon "ReqBody") json) (tycon (ref b))]
123
123
124 | _mSupportsMediaUpload m =
124 | _mSupportsMediaUpload m =
125− [TyApp (TyApp (TyCon "ReqBody") octet) (TyCon "RequestBody")]
125+ [TyApp (TyApp (TyCon "ReqBody") octet) (TyCon "Body")]
126
126
127 | otherwise = []
127 | otherwise = []
128
128
@@ -156,7 +156,9 @@ downloadDecl n p api url fs m =
156 pat | _mSupportsMediaDownload m = PInfixApp PWildCard (UnQual (sym ":<|>")) (pvar "go")
156 pat | _mSupportsMediaDownload m = PInfixApp PWildCard (UnQual (sym ":<|>")) (pvar "go")
157 | otherwise = pvar "go"
157 | otherwise = pvar "go"
158
158
159− prec = PApp (UnQual "MediaDownload") [PRec (UnQual (dname n)) [PFieldWildcard]]
159+ prec = PApp (UnQual "MediaDownload")
160+ [ PRec (UnQual (dname n)) [PFieldWildcard | not (null fs)]
161+ ]
160
162
161requestDecl :: Global
163requestDecl :: Global
162 -> Prefix
164 -> Prefix
@@ -177,7 +179,7 @@ requestDecl n p api url fs m =
177 pat | _mSupportsMediaDownload m = PInfixApp (pvar "go") (UnQual (sym ":<|>")) PWildCard
179 pat | _mSupportsMediaDownload m = PInfixApp (pvar "go") (UnQual (sym ":<|>")) PWildCard
178 | otherwise = pvar "go"
180 | otherwise = pvar "go"
179
181
180− prec = PRec (UnQual (dname n)) [PFieldWildcard]
182+ prec = PRec (UnQual (dname n)) [PFieldWildcard | not (null fs)]
181
183
182googleRequestDecl :: Global
184googleRequestDecl :: Global
183 -> Type
185 -> Type
@@ -451,7 +453,8 @@ externalLit = \case
451 Int64 -> TyCon "Int64"
453 Int64 -> TyCon "Int64"
452
454
453 Alt t -> TyCon (unqual (Text.unpack t))
455 Alt t -> TyCon (unqual (Text.unpack t))
456+ RqBody -> TyCon "Body"
454− Body -> TyCon "Stream"
457+ RsBody -> TyCon "Stream"
455 JSONValue -> TyCon "JSONValue"
458 JSONValue -> TyCon "JSONValue"
456
459
457internalLit :: Lit -> Type
460internalLit :: Lit -> Type
@@ -471,7 +474,8 @@ internalLit = \case
471 Int64 -> TyCon "Int64"
474 Int64 -> TyCon "Int64"
472
475
473 Alt t -> TyCon (unqual (Text.unpack t))
476 Alt t -> TyCon (unqual (Text.unpack t))
477+ RqBody -> TyCon "Body"
474− Body -> TyCon "Stream"
478+ RsBody -> TyCon "Stream"
475 JSONValue -> TyCon "JSONValue"
479 JSONValue -> TyCon "JSONValue"
476
480
477mapping :: TType -> Exp -> Exp
481mapping :: TType -> Exp -> Exp
gen/src/Gen/Types.hs+2−1
@@ -333,7 +333,8 @@ initial s = Memo s mempty mempty res core mempty mempty mempty
333
333
334 -- Types available in Network.Google.Prelude.
334 -- Types available in Network.Google.Prelude.
335 core = Map.fromList
335 core = Map.fromList
336− [ ("Body", SLit requiredInfo Body)
336+ [ ("Body", SLit requiredInfo RqBody)
337+ , ("Stream", SLit requiredInfo RsBody)
337 , ("JSONValue", SLit requiredInfo JSONValue)
338 , ("JSONValue", SLit requiredInfo JSONValue)
338 ]
339 ]
339
340
gen/src/Gen/Types/Schema.hs+2−1
@@ -199,7 +199,8 @@ data Lit
199 | Date
199 | Date
200 | DateTime
200 | DateTime
201 -- Core types.
201 -- Core types.
202− | Body
202+ | RqBody
203+ | RsBody
203 | JSONValue
204 | JSONValue
204 | Alt Text
205 | Alt Text
205 deriving (Eq, Show)
206 deriving (Eq, Show)