feat(doit): query string setup

It works for uploads as well as for others.

Next up is to setup the head and authentication. It will be as simple
as calling and handling `GetToken`, even though I think that there
needs to be better support for the scope that is asked for ... .
This commit is contained in:
Sebastian Thiel
2015-03-09 17:29:44 +01:00
parent da300e035e
commit aabed38581
7 changed files with 425 additions and 45 deletions

View File

@@ -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:

View File

@@ -16,6 +16,7 @@ keywords = ["youtube", "google", "protocol", "web", "api"]
[dependencies]
hyper = "*"
mime = "*"
url = "*"
rustc-serialize = "*"
yup-oauth2 = "*"

View File

@@ -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)
}

View File

@@ -18,6 +18,7 @@ keywords = ["${name}", ${", ".join(estr(cargo.keywords))}]
[dependencies]
hyper = "*"
mime = "*"
url = "*"
rustc-serialize = "*"
yup-oauth2 = "*"

View File

@@ -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;

View File

@@ -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:

View File

@@ -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