changeset 185:9e5b86630da1

Update drive example with new enums API
author Lewin Bormann <lbo@spheniscida.de>
date Fri, 29 Jan 2021 11:43:46 +0100
parents 4168f61afd5e
children 0fd7f1413b65
files example_crates/drive_example/Cargo.lock example_crates/drive_example/src/drive_v3_types.rs example_crates/drive_example/src/main.rs
diffstat 3 files changed, 133 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/example_crates/drive_example/Cargo.lock	Fri Jan 29 10:29:31 2021 +0100
+++ b/example_crates/drive_example/Cargo.lock	Fri Jan 29 11:43:46 2021 +0100
@@ -23,7 +23,7 @@
 
 [[package]]
 name = "async-google-apis-common"
-version = "0.1.7"
+version = "0.2.0"
 dependencies = [
  "anyhow",
  "chrono",
--- a/example_crates/drive_example/src/drive_v3_types.rs	Fri Jan 29 10:29:31 2021 +0100
+++ b/example_crates/drive_example/src/drive_v3_types.rs	Fri Jan 29 11:43:46 2021 +0100
@@ -1643,7 +1643,7 @@
     /// Data format for the response.
     #[serde(rename = "alt")]
     #[serde(skip_serializing_if = "Option::is_none")]
-    pub alt: Option<String>,
+    pub alt: Option<DriveParamsAlt>,
     /// Selector specifying which fields to include in a partial response.
     #[serde(rename = "fields")]
     #[serde(skip_serializing_if = "Option::is_none")]
@@ -1670,6 +1670,33 @@
     pub user_ip: Option<String>,
 }
 
+#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
+pub enum DriveParamsAlt {
+    Undefined,
+    /// Responses with Content-Type of application/json
+    #[serde(rename = "json")]
+    Json,
+    #[serde(rename = "media")]
+    Media,
+}
+
+impl std::default::Default for DriveParamsAlt {
+    fn default() -> DriveParamsAlt {
+        DriveParamsAlt::Undefined
+    }
+}
+
+impl std::fmt::Display for DriveParamsAlt {
+    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+        let s = match self {
+            DriveParamsAlt::Undefined => write!(f, "undefined"),
+            DriveParamsAlt::Json => write!(f, "json"),
+            DriveParamsAlt::Media => write!(f, "media"),
+        };
+        Ok(())
+    }
+}
+
 /// Parameters for the `about.get` method.
 #[derive(Serialize, Deserialize, Debug, Clone, Default)]
 pub struct AboutGetParams {
@@ -4290,7 +4317,7 @@
     ) -> Result<Comment> {
         let rel_path = format!(
             "files/{fileId}/comments",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4323,8 +4350,11 @@
     pub async fn delete(&mut self, params: &CommentsDeleteParams) -> Result<()> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4356,8 +4386,11 @@
     pub async fn get(&mut self, params: &CommentsGetParams) -> Result<Comment> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4389,7 +4422,7 @@
     pub async fn list(&mut self, params: &CommentsListParams) -> Result<CommentList> {
         let rel_path = format!(
             "files/{fileId}/comments",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4425,8 +4458,11 @@
     ) -> Result<Comment> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4560,7 +4596,7 @@
     pub async fn delete(&mut self, params: &DrivesDeleteParams) -> Result<()> {
         let rel_path = format!(
             "drives/{driveId}",
-            driveId = percent_encode(params.drive_id.as_bytes(), NON_ALPHANUMERIC)
+            driveId = percent_encode(format!("{}", params.drive_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4592,7 +4628,7 @@
     pub async fn get(&mut self, params: &DrivesGetParams) -> Result<Drive> {
         let rel_path = format!(
             "drives/{driveId}",
-            driveId = percent_encode(params.drive_id.as_bytes(), NON_ALPHANUMERIC)
+            driveId = percent_encode(format!("{}", params.drive_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4624,7 +4660,7 @@
     pub async fn hide(&mut self, params: &DrivesHideParams) -> Result<Drive> {
         let rel_path = format!(
             "drives/{driveId}/hide",
-            driveId = percent_encode(params.drive_id.as_bytes(), NON_ALPHANUMERIC)
+            driveId = percent_encode(format!("{}", params.drive_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4685,7 +4721,7 @@
     pub async fn unhide(&mut self, params: &DrivesUnhideParams) -> Result<Drive> {
         let rel_path = format!(
             "drives/{driveId}/unhide",
-            driveId = percent_encode(params.drive_id.as_bytes(), NON_ALPHANUMERIC)
+            driveId = percent_encode(format!("{}", params.drive_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4717,7 +4753,7 @@
     pub async fn update(&mut self, params: &DrivesUpdateParams, req: &Drive) -> Result<Drive> {
         let rel_path = format!(
             "drives/{driveId}",
-            driveId = percent_encode(params.drive_id.as_bytes(), NON_ALPHANUMERIC)
+            driveId = percent_encode(format!("{}", params.drive_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4821,7 +4857,7 @@
     pub async fn copy(&mut self, params: &FilesCopyParams, req: &File) -> Result<File> {
         let rel_path = format!(
             "files/{fileId}/copy",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -4976,7 +5012,7 @@
     pub async fn delete(&mut self, params: &FilesDeleteParams) -> Result<()> {
         let rel_path = format!(
             "files/{fileId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5042,7 +5078,7 @@
     ) -> Result<Download<'a, EmptyRequest, ()>> {
         let rel_path = format!(
             "files/{fileId}/export",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5108,7 +5144,7 @@
     ) -> Result<Download<'a, EmptyRequest, File>> {
         let rel_path = format!(
             "files/{fileId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5169,7 +5205,7 @@
     pub async fn update(&mut self, params: &FilesUpdateParams, req: &File) -> Result<File> {
         let rel_path = format!(
             "files/{fileId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5209,7 +5245,7 @@
     ) -> Result<File> {
         let rel_path = format!(
             "/upload/drive/v3/files/{fileId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5260,7 +5296,7 @@
     ) -> Result<ResumableUpload<'client, File>> {
         let rel_path = format!(
             "/resumable/upload/drive/v3/files/{fileId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5315,7 +5351,7 @@
     ) -> Result<Download<'a, Channel, Channel>> {
         let rel_path = format!(
             "files/{fileId}/watch",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5423,7 +5459,7 @@
     ) -> Result<Permission> {
         let rel_path = format!(
             "files/{fileId}/permissions",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5456,8 +5492,11 @@
     pub async fn delete(&mut self, params: &PermissionsDeleteParams) -> Result<()> {
         let rel_path = format!(
             "files/{fileId}/permissions/{permissionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            permissionId = percent_encode(params.permission_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            permissionId = percent_encode(
+                format!("{}", params.permission_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5489,8 +5528,11 @@
     pub async fn get(&mut self, params: &PermissionsGetParams) -> Result<Permission> {
         let rel_path = format!(
             "files/{fileId}/permissions/{permissionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            permissionId = percent_encode(params.permission_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            permissionId = percent_encode(
+                format!("{}", params.permission_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5522,7 +5564,7 @@
     pub async fn list(&mut self, params: &PermissionsListParams) -> Result<PermissionList> {
         let rel_path = format!(
             "files/{fileId}/permissions",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5558,8 +5600,11 @@
     ) -> Result<Permission> {
         let rel_path = format!(
             "files/{fileId}/permissions/{permissionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            permissionId = percent_encode(params.permission_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            permissionId = percent_encode(
+                format!("{}", params.permission_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5663,8 +5708,11 @@
     pub async fn create(&mut self, params: &RepliesCreateParams, req: &Reply) -> Result<Reply> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}/replies",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5697,9 +5745,12 @@
     pub async fn delete(&mut self, params: &RepliesDeleteParams) -> Result<()> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}/replies/{replyId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC),
-            replyId = percent_encode(params.reply_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            ),
+            replyId = percent_encode(format!("{}", params.reply_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5731,9 +5782,12 @@
     pub async fn get(&mut self, params: &RepliesGetParams) -> Result<Reply> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}/replies/{replyId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC),
-            replyId = percent_encode(params.reply_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            ),
+            replyId = percent_encode(format!("{}", params.reply_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5765,8 +5819,11 @@
     pub async fn list(&mut self, params: &RepliesListParams) -> Result<ReplyList> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}/replies",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5798,9 +5855,12 @@
     pub async fn update(&mut self, params: &RepliesUpdateParams, req: &Reply) -> Result<Reply> {
         let rel_path = format!(
             "files/{fileId}/comments/{commentId}/replies/{replyId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            commentId = percent_encode(params.comment_id.as_bytes(), NON_ALPHANUMERIC),
-            replyId = percent_encode(params.reply_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            commentId = percent_encode(
+                format!("{}", params.comment_id).as_bytes(),
+                NON_ALPHANUMERIC
+            ),
+            replyId = percent_encode(format!("{}", params.reply_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5904,8 +5964,11 @@
     pub async fn delete(&mut self, params: &RevisionsDeleteParams) -> Result<()> {
         let rel_path = format!(
             "files/{fileId}/revisions/{revisionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            revisionId = percent_encode(params.revision_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            revisionId = percent_encode(
+                format!("{}", params.revision_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5942,8 +6005,11 @@
     ) -> Result<Download<'a, EmptyRequest, Revision>> {
         let rel_path = format!(
             "files/{fileId}/revisions/{revisionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            revisionId = percent_encode(params.revision_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            revisionId = percent_encode(
+                format!("{}", params.revision_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -5975,7 +6041,7 @@
     pub async fn list(&mut self, params: &RevisionsListParams) -> Result<RevisionList> {
         let rel_path = format!(
             "files/{fileId}/revisions",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC)
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -6011,8 +6077,11 @@
     ) -> Result<Revision> {
         let rel_path = format!(
             "files/{fileId}/revisions/{revisionId}",
-            fileId = percent_encode(params.file_id.as_bytes(), NON_ALPHANUMERIC),
-            revisionId = percent_encode(params.revision_id.as_bytes(), NON_ALPHANUMERIC)
+            fileId = percent_encode(format!("{}", params.file_id).as_bytes(), NON_ALPHANUMERIC),
+            revisionId = percent_encode(
+                format!("{}", params.revision_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -6150,7 +6219,10 @@
     pub async fn delete(&mut self, params: &TeamdrivesDeleteParams) -> Result<()> {
         let rel_path = format!(
             "teamdrives/{teamDriveId}",
-            teamDriveId = percent_encode(params.team_drive_id.as_bytes(), NON_ALPHANUMERIC)
+            teamDriveId = percent_encode(
+                format!("{}", params.team_drive_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -6182,7 +6254,10 @@
     pub async fn get(&mut self, params: &TeamdrivesGetParams) -> Result<TeamDrive> {
         let rel_path = format!(
             "teamdrives/{teamDriveId}",
-            teamDriveId = percent_encode(params.team_drive_id.as_bytes(), NON_ALPHANUMERIC)
+            teamDriveId = percent_encode(
+                format!("{}", params.team_drive_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
@@ -6247,7 +6322,10 @@
     ) -> Result<TeamDrive> {
         let rel_path = format!(
             "teamdrives/{teamDriveId}",
-            teamDriveId = percent_encode(params.team_drive_id.as_bytes(), NON_ALPHANUMERIC)
+            teamDriveId = percent_encode(
+                format!("{}", params.team_drive_id).as_bytes(),
+                NON_ALPHANUMERIC
+            )
         );
         let path = self.format_path(rel_path.as_str());
 
--- a/example_crates/drive_example/src/main.rs	Fri Jan 29 10:29:31 2021 +0100
+++ b/example_crates/drive_example/src/main.rs	Fri Jan 29 11:43:46 2021 +0100
@@ -60,7 +60,7 @@
     params.file_id = file_id.clone();
     params.drive_params = Some(general_params.clone());
     // This parameter will trigger the download.
-    params.drive_params.as_mut().unwrap().alt = Some("media".into());
+    params.drive_params.as_mut().unwrap().alt = Some(drive::DriveParamsAlt::Media);
     let mut dest = vec![0 as u8; 128];
 
     // Get file contents.