@@ -263,38 +263,44 @@ void SetHttpQueryParameters(HttpExtensionInfo const& info,
263263}
264264
265265HttpExtensionInfo ParseHttpExtension (
266- google::protobuf::MethodDescriptor const & method) {
266+ google::protobuf::MethodDescriptor const & method,
267+ absl::optional<MixinMethodOverride> method_override) {
267268 if (!method.options ().HasExtension (google::api::http)) return {};
268269
269270 HttpExtensionInfo info;
270271 google::api::HttpRule http_rule =
271272 method.options ().GetExtension (google::api::http);
272273
273274 std::string url_pattern;
274- switch (http_rule.pattern_case ()) {
275- case google::api::HttpRule::kGet :
276- info.http_verb = " Get" ;
277- url_pattern = http_rule.get ();
278- break ;
279- case google::api::HttpRule::kPut :
280- info.http_verb = " Put" ;
281- url_pattern = http_rule.put ();
282- break ;
283- case google::api::HttpRule::kPost :
284- info.http_verb = " Post" ;
285- url_pattern = http_rule.post ();
286- break ;
287- case google::api::HttpRule::kDelete :
288- info.http_verb = " Delete" ;
289- url_pattern = http_rule.delete_ ();
290- break ;
291- case google::api::HttpRule::kPatch :
292- info.http_verb = " Patch" ;
293- url_pattern = http_rule.patch ();
294- break ;
295- default :
296- GCP_LOG (FATAL) << __FILE__ << " :" << __LINE__
297- << " : google::api::HttpRule not handled" ;
275+ if (method_override) {
276+ url_pattern = method_override->http_path ;
277+ info.http_verb = method_override->http_verb ;
278+ } else {
279+ switch (http_rule.pattern_case ()) {
280+ case google::api::HttpRule::kGet :
281+ info.http_verb = " Get" ;
282+ url_pattern = http_rule.get ();
283+ break ;
284+ case google::api::HttpRule::kPut :
285+ info.http_verb = " Put" ;
286+ url_pattern = http_rule.put ();
287+ break ;
288+ case google::api::HttpRule::kPost :
289+ info.http_verb = " Post" ;
290+ url_pattern = http_rule.post ();
291+ break ;
292+ case google::api::HttpRule::kDelete :
293+ info.http_verb = " Delete" ;
294+ url_pattern = http_rule.delete_ ();
295+ break ;
296+ case google::api::HttpRule::kPatch :
297+ info.http_verb = " Patch" ;
298+ url_pattern = http_rule.patch ();
299+ break ;
300+ default :
301+ GCP_LOG (FATAL) << __FILE__ << " :" << __LINE__
302+ << " : google::api::HttpRule not handled" ;
303+ }
298304 }
299305
300306 auto parsed_http_rule = ParsePathTemplate (url_pattern);
0 commit comments