diff --git a/gen/youtube3/README.md b/gen/youtube3/README.md index f6b4ed9d87..6be2ab1876 100644 --- a/gen/youtube3/README.md +++ b/gen/youtube3/README.md @@ -27,6 +27,9 @@ Handle the following *Resources* with ease ... * videos (*delete*, *getRating*, *insert*, *list*, *rate* and *update*) * watermarks (*set* and *unset*) +Everything else about the *YouTube* API can be found at the +[official documentation site](https://developers.google.com/youtube/v3). + # Structure of this Library The API is structured into the following primary items: diff --git a/gen/youtube3/cargo.toml b/gen/youtube3/cargo.toml index 79bd5abbfb..6769bcc0e8 100644 --- a/gen/youtube3/cargo.toml +++ b/gen/youtube3/cargo.toml @@ -16,6 +16,7 @@ keywords = ["youtube", "google", "protocol", "web", "api"] [dependencies] hyper = "*" mime = "*" +url = "*" rustc-serialize = "*" yup-oauth2 = "*" diff --git a/gen/youtube3/src/lib.rs b/gen/youtube3/src/lib.rs index a9aba004b6..0778cf0259 100644 --- a/gen/youtube3/src/lib.rs +++ b/gen/youtube3/src/lib.rs @@ -24,6 +24,9 @@ //! * [videos](struct.Video.html) ([*delete*](struct.VideoDeleteMethodBuilder.html), [*getRating*](struct.VideoGetRatingMethodBuilder.html), [*insert*](struct.VideoInsertMethodBuilder.html), [*list*](struct.VideoListMethodBuilder.html), [*rate*](struct.VideoRateMethodBuilder.html) and [*update*](struct.VideoUpdateMethodBuilder.html)) //! * watermarks ([*set*](struct.WatermarkSetMethodBuilder.html) and [*unset*](struct.WatermarkUnsetMethodBuilder.html)) //! +//! Everything else about the *YouTube* API can be found at the +//! [official documentation site](https://developers.google.com/youtube/v3). +//! //! # Structure of this Library //! //! The API is structured into the following primary items: @@ -121,6 +124,7 @@ extern crate hyper; extern crate "rustc-serialize" as rustc_serialize; extern crate "yup-oauth2" as oauth2; extern crate mime; +extern crate url; mod cmn; @@ -5017,12 +5021,19 @@ impl<'a, C, NC, A> I18nLanguageListMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: I18nLanguageListResponse = Default::default(); + + Result::Success(response) } @@ -5148,12 +5159,25 @@ impl<'a, C, NC, A> ChannelBannerInsertMethodBuilder<'a, C, NC, A> where NC: hype } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = if stream.is_some() { + "https://www.googleapis.com/upload/youtube/v3/channelBanners/insert".to_string() + } else if resumeable_stream.is_some() { + "https://www.googleapis.com/resumable/upload/youtube/v3/channelBanners/insert".to_string() + } else { + unreachable!() + }; + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ChannelBannerResource = Default::default(); + + Result::Success(response) } @@ -5317,12 +5341,19 @@ impl<'a, C, NC, A> ChannelSectionListMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ChannelSectionListResponse = Default::default(); + + Result::Success(response) } @@ -5496,12 +5527,19 @@ impl<'a, C, NC, A> ChannelSectionInsertMethodBuilder<'a, C, NC, A> where NC: hyp } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ChannelSection = Default::default(); + + Result::Success(response) } @@ -5650,12 +5688,19 @@ impl<'a, C, NC, A> ChannelSectionDeleteMethodBuilder<'a, C, NC, A> where NC: hyp } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -5792,12 +5837,19 @@ impl<'a, C, NC, A> ChannelSectionUpdateMethodBuilder<'a, C, NC, A> where NC: hyp } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ChannelSection = Default::default(); + + Result::Success(response) } @@ -5957,12 +6009,19 @@ impl<'a, C, NC, A> GuideCategoryListMethodBuilder<'a, C, NC, A> where NC: hyper: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: GuideCategoryListResponse = Default::default(); + + Result::Success(response) } @@ -6125,12 +6184,19 @@ impl<'a, C, NC, A> PlaylistInsertMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Playlist = Default::default(); + + Result::Success(response) } @@ -6324,12 +6390,19 @@ impl<'a, C, NC, A> PlaylistListMethodBuilder<'a, C, NC, A> where NC: hyper::net: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: PlaylistListResponse = Default::default(); + + Result::Success(response) } @@ -6503,12 +6576,19 @@ impl<'a, C, NC, A> PlaylistDeleteMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -6645,12 +6725,19 @@ impl<'a, C, NC, A> PlaylistUpdateMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Playlist = Default::default(); + + Result::Success(response) } @@ -6790,12 +6877,25 @@ impl<'a, C, NC, A> ThumbnailSetMethodBuilder<'a, C, NC, A> where NC: hyper::net: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = if stream.is_some() { + "https://www.googleapis.com/upload/youtube/v3/thumbnails/set".to_string() + } else if resumeable_stream.is_some() { + "https://www.googleapis.com/resumable/upload/youtube/v3/thumbnails/set".to_string() + } else { + unreachable!() + }; + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ThumbnailSetResponse = Default::default(); + + Result::Success(response) } @@ -6998,12 +7098,19 @@ impl<'a, C, NC, A> VideoListMethodBuilder<'a, C, NC, A> where NC: hyper::net::Ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: VideoListResponse = Default::default(); + + Result::Success(response) } @@ -7212,12 +7319,19 @@ impl<'a, C, NC, A> VideoRateMethodBuilder<'a, C, NC, A> where NC: hyper::net::Ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -7340,12 +7454,19 @@ impl<'a, C, NC, A> VideoGetRatingMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: VideoGetRatingResponse = Default::default(); + + Result::Success(response) } @@ -7458,12 +7579,19 @@ impl<'a, C, NC, A> VideoDeleteMethodBuilder<'a, C, NC, A> where NC: hyper::net:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -7620,12 +7748,19 @@ impl<'a, C, NC, A> VideoUpdateMethodBuilder<'a, C, NC, A> where NC: hyper::net:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Video = Default::default(); + + Result::Success(response) } @@ -7852,12 +7987,25 @@ impl<'a, C, NC, A> VideoInsertMethodBuilder<'a, C, NC, A> where NC: hyper::net:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = if stream.is_some() { + "https://www.googleapis.com/upload/youtube/v3/videos".to_string() + } else if resumeable_stream.is_some() { + "https://www.googleapis.com/resumable/upload/youtube/v3/videos".to_string() + } else { + unreachable!() + }; + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Video = Default::default(); + + Result::Success(response) } @@ -8092,12 +8240,19 @@ impl<'a, C, NC, A> SubscriptionInsertMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Subscription = Default::default(); + + Result::Success(response) } @@ -8283,12 +8438,19 @@ impl<'a, C, NC, A> SubscriptionListMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: SubscriptionListResponse = Default::default(); + + Result::Success(response) } @@ -8480,12 +8642,19 @@ impl<'a, C, NC, A> SubscriptionDeleteMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -8741,12 +8910,19 @@ impl<'a, C, NC, A> SearchListMethodBuilder<'a, C, NC, A> where NC: hyper::net::N } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: SearchListResponse = Default::default(); + + Result::Success(response) } @@ -9105,12 +9281,19 @@ impl<'a, C, NC, A> I18nRegionListMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: I18nRegionListResponse = Default::default(); + + Result::Success(response) } @@ -9256,12 +9439,19 @@ impl<'a, C, NC, A> LiveStreamUpdateMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveStream = Default::default(); + + Result::Success(response) } @@ -9421,12 +9611,19 @@ impl<'a, C, NC, A> LiveStreamDeleteMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -9590,12 +9787,19 @@ impl<'a, C, NC, A> LiveStreamListMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveStreamListResponse = Default::default(); + + Result::Success(response) } @@ -9789,12 +9993,19 @@ impl<'a, C, NC, A> LiveStreamInsertMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveStream = Default::default(); + + Result::Success(response) } @@ -9971,12 +10182,19 @@ impl<'a, C, NC, A> ChannelUpdateMethodBuilder<'a, C, NC, A> where NC: hyper::net } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Channel = Default::default(); + + Result::Success(response) } @@ -10171,12 +10389,19 @@ impl<'a, C, NC, A> ChannelListMethodBuilder<'a, C, NC, A> where NC: hyper::net:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ChannelListResponse = Default::default(); + + Result::Success(response) } @@ -10357,12 +10582,19 @@ impl<'a, C, NC, A> PlaylistItemDeleteMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -10505,12 +10737,19 @@ impl<'a, C, NC, A> PlaylistItemListMethodBuilder<'a, C, NC, A> where NC: hyper:: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: PlaylistItemListResponse = Default::default(); + + Result::Success(response) } @@ -10698,12 +10937,19 @@ impl<'a, C, NC, A> PlaylistItemInsertMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: PlaylistItem = Default::default(); + + Result::Success(response) } @@ -10863,12 +11109,19 @@ impl<'a, C, NC, A> PlaylistItemUpdateMethodBuilder<'a, C, NC, A> where NC: hyper } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: PlaylistItem = Default::default(); + + Result::Success(response) } @@ -11007,12 +11260,25 @@ impl<'a, C, NC, A> WatermarkSetMethodBuilder<'a, C, NC, A> where NC: hyper::net: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = if stream.is_some() { + "https://www.googleapis.com/upload/youtube/v3/watermarks/set".to_string() + } else if resumeable_stream.is_some() { + "https://www.googleapis.com/resumable/upload/youtube/v3/watermarks/set".to_string() + } else { + unreachable!() + }; + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -11155,12 +11421,19 @@ impl<'a, C, NC, A> WatermarkUnsetMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -11304,12 +11577,19 @@ impl<'a, C, NC, A> LiveBroadcastControlMethodBuilder<'a, C, NC, A> where NC: hyp } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcast = Default::default(); + + Result::Success(response) } @@ -11509,12 +11789,19 @@ impl<'a, C, NC, A> LiveBroadcastUpdateMethodBuilder<'a, C, NC, A> where NC: hype } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcast = Default::default(); + + Result::Success(response) } @@ -11699,12 +11986,19 @@ impl<'a, C, NC, A> LiveBroadcastInsertMethodBuilder<'a, C, NC, A> where NC: hype } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcast = Default::default(); + + Result::Success(response) } @@ -11880,12 +12174,19 @@ impl<'a, C, NC, A> LiveBroadcastBindMethodBuilder<'a, C, NC, A> where NC: hyper: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcast = Default::default(); + + Result::Success(response) } @@ -12079,12 +12380,19 @@ impl<'a, C, NC, A> LiveBroadcastListMethodBuilder<'a, C, NC, A> where NC: hyper: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcastListResponse = Default::default(); + + Result::Success(response) } @@ -12261,12 +12569,19 @@ impl<'a, C, NC, A> LiveBroadcastDeleteMethodBuilder<'a, C, NC, A> where NC: hype } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response = (); + + Result::Success(response) } @@ -12411,12 +12726,19 @@ impl<'a, C, NC, A> LiveBroadcastTransitionMethodBuilder<'a, C, NC, A> where NC: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: LiveBroadcast = Default::default(); + + Result::Success(response) } @@ -12591,12 +12913,19 @@ impl<'a, C, NC, A> VideoCategoryListMethodBuilder<'a, C, NC, A> where NC: hyper: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: VideoCategoryListResponse = Default::default(); + + Result::Success(response) } @@ -12776,12 +13105,19 @@ impl<'a, C, NC, A> ActivityListMethodBuilder<'a, C, NC, A> where NC: hyper::net: } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: ActivityListResponse = Default::default(); + + Result::Success(response) } @@ -12974,12 +13310,19 @@ impl<'a, C, NC, A> ActivityInsertMethodBuilder<'a, C, NC, A> where NC: hyper::ne } } for (name, value) in self._additional_params.iter() { - params.push((name, value.clone())); + params.push((&name, value.clone())); } + let mut url = "https://www.googleapis.com/youtube/v3/".to_string(); + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + let response: Activity = Default::default(); + + Result::Success(response) } diff --git a/src/mako/cargo.toml.mako b/src/mako/cargo.toml.mako index 44549cfc31..75fae29399 100644 --- a/src/mako/cargo.toml.mako +++ b/src/mako/cargo.toml.mako @@ -18,6 +18,7 @@ keywords = ["${name}", ${", ".join(estr(cargo.keywords))}] [dependencies] hyper = "*" mime = "*" +url = "*" rustc-serialize = "*" yup-oauth2 = "*" diff --git a/src/mako/lib.rs.mako b/src/mako/lib.rs.mako index b43e5a0e62..b5befacedc 100644 --- a/src/mako/lib.rs.mako +++ b/src/mako/lib.rs.mako @@ -26,6 +26,7 @@ extern crate hyper; extern crate "rustc-serialize" as rustc_serialize; extern crate "yup-oauth2" as oauth2; extern crate mime; +extern crate url; mod cmn; diff --git a/src/mako/lib/lib.mako b/src/mako/lib/lib.mako index c0e0b2acfc..3d080abf9e 100644 --- a/src/mako/lib/lib.mako +++ b/src/mako/lib/lib.mako @@ -36,6 +36,11 @@ Handle the following *Resources* with ease ... * ${md_resource} (${put_and(md_methods)}) % endfor +% if documentationLink: +Everything else about the *${util.canonical_name()}* API can be found at the +[official documentation site](${documentationLink}). +% endif + # Structure of this Library The API is structured into the following primary items: diff --git a/src/mako/lib/mbuild.mako b/src/mako/lib/mbuild.mako index 16097718fd..12a24698c6 100644 --- a/src/mako/lib/mbuild.mako +++ b/src/mako/lib/mbuild.mako @@ -275,6 +275,8 @@ ${'.' + action_name | indent_by(13)}(${action_args}); ############################################################################################### <%def name="_action_fn(resource, method, m, params, request_value, parts)">\ <% + import os.path + join_url = lambda b, e: b.strip('/') + e media_params = method_media_params(m) type_params = '' @@ -343,11 +345,35 @@ ${'.' + action_name | indent_by(13)}(${action_args}); params.push((&name, value.clone())); } + % if media_params: + let mut url = \ + % for mp in media_params: + % if loop.first: +if \ + % else: +else if \ + % endif +${mp.type.arg_name}.is_some() { + "${join_url(rootUrl, mp.path)}".to_string() + } \ + % endfor +else { + unreachable!() + }; + % else: + let mut url = "${baseUrl}".to_string(); + % endif + + url.push('?'); + url.push_str(&url::form_urlencoded::serialize(params.iter().map(|t| (t.0, t.1.as_slice())))); + % if response_schema: let response: ${response_schema.id} = Default::default(); % else: let response = (); % endif + + ## let mut params: Vec<(String, String)> = Vec::with_capacity ## // note: cloned() shouldn't be needed, see issue ## // https://github.com/servo/rust-url/issues/81