diff --git a/Cargo.lock b/Cargo.lock index d1c4e71..3d095a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2138,6 +2138,7 @@ dependencies = [ "format_serde_error", "futures", "futures-util", + "getrandom 0.3.1", "http 1.2.0", "itertools", "log", @@ -2145,7 +2146,7 @@ dependencies = [ "parse-display 0.10.0", "phonenumber", "pretty_assertions", - "rand 0.8.5", + "rand 0.9.0", "reqwest 0.12.15", "reqwest-conditional-middleware", "reqwest-middleware 0.4.0", @@ -2156,7 +2157,7 @@ dependencies = [ "serde_bytes", "serde_json", "serde_urlencoded", - "tabled 0.17.0", + "tabled 0.18.0", "thiserror 2.0.9", "tokio", "tokio-tungstenite", diff --git a/remote/Cargo.toml b/remote/Cargo.toml index b3ef663..b573d3c 100644 --- a/remote/Cargo.toml +++ b/remote/Cargo.toml @@ -25,8 +25,9 @@ log = { version = "^0.4", features = ["serde"], optional = true } mime_guess = "2.0.4" parse-display = "0.10.0" phonenumber = "0.3.7" -rand = { version = "0.8", optional = true } -reqwest = { version = "0.12", default-features = false, features = ["json", "multipart", "rustls-tls"], optional = true } +rand = { version = "0.9", optional = true } +getrandom = { version = "0.3" } +reqwest = { version = "0.12.14", default-features = false, features = ["json", "multipart", "rustls-tls"], optional = true } reqwest-conditional-middleware = { version = "0.4", optional = true } reqwest-middleware = { version = "0.4", optional = true, features = ["json", "multipart", "http2", "rustls-tls"] } reqwest-retry = { version = "0.7", optional = true } @@ -36,7 +37,7 @@ serde = { version = "1", features = ["derive"] } serde_bytes = "0.11" serde_json = "1" serde_urlencoded = { version = "^0.7", optional = true } -tabled = { version = "0.17.0", features = ["ansi"], optional = true } +tabled = { version = "0.18.0", features = ["ansi"], optional = true } thiserror = "2" tracing = { version = "^0.1", optional = true } url = { version = "2", features = ["serde"] } @@ -53,7 +54,7 @@ chrono = { version = "0.4", default-features = false, features = ["serde", "std" expectorate = "1" futures-util = "^0.3.26" pretty_assertions = "1" -rand = "0.8" +rand = "0.9" tokio = { version = "1.43.1", features = ["rt", "macros"] } tokio-tungstenite = "0.24" @@ -63,7 +64,7 @@ clap = ["dep:clap"] tabled = ["dep:tabled"] requests = ["dep:async-trait", "dep:format_serde_error", "dep:futures", "dep:http", "dep:log", "dep:rand", "dep:reqwest", "dep:serde_urlencoded", "dep:tracing"] retry = ["dep:reqwest-conditional-middleware", "dep:reqwest-retry", "dep:reqwest-middleware", "dep:reqwest-tracing"] -js = ["uuid/js"] +js = ["uuid/js", "getrandom/wasm_js"] [package.metadata.docs.rs] all-features = true diff --git a/remote/remote-api.rs.patch.json b/remote/remote-api.rs.patch.json index 4b777ac..6e544cb 100644 --- a/remote/remote-api.rs.patch.json +++ b/remote/remote-api.rs.patch.json @@ -91,7 +91,7 @@ "op": "add", "path": "/paths/~1v1~1sandbox~1employments~1{employment_id}/patch/x-rust", "value": { - "example": "/// Update employment in the Sandbox Environment\n/// \n/// Updates an employment. Use this endpoint to modify employment states for testing\n/// in the Sandbox environment. This endpoint will respond with a 404 outside of the\n/// Sandbox environment.\n/// \n/// For updating an employment's parameters outside of testing purposes, use [this\n/// Employment update endpoint](#operation/patch_update_employment).\n/// \n/// \n/// **Parameters:**\n/// \n/// - `employment_id: &'astr`: Employment ID (required)\nasync fn example_sandbox_patch_update_employment_3() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_3(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Deleted),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// Update employment in the Sandbox Environment\n/// \n/// Updates an employment. Use this endpoint to modify employment states for testing\n/// in the Sandbox environment. This endpoint will respond with a 404 outside of the\n/// Sandbox environment.\n/// \n/// For updating an employment's parameters outside of testing purposes, use [this\n/// Employment update endpoint](#operation/patch_update_employment).\n/// \n/// \n/// **Parameters:**\n/// \n/// - `employment_id: &'astr`: Employment ID (required)\nasync fn example_sandbox_patch_update_employment_3() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_3(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Pending),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/sandbox/struct.Sandbox.html#method.patch_update_employment_3" } }, @@ -99,7 +99,7 @@ "op": "add", "path": "/paths/~1v1~1sandbox~1employments~1{employment_id}/put/x-rust", "value": { - "example": "/// Update employment in the Sandbox Environment\n/// \n/// Updates an employment. Use this endpoint to modify employment states for testing\n/// in the Sandbox environment. This endpoint will respond with a 404 outside of the\n/// Sandbox environment.\n/// \n/// For updating an employment's parameters outside of testing purposes, use [this\n/// Employment update endpoint](#operation/patch_update_employment).\n/// \n/// \n/// **Parameters:**\n/// \n/// - `employment_id: &'astr`: Employment ID (required)\nasync fn example_sandbox_patch_update_employment_4() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_4(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Deleted),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// Update employment in the Sandbox Environment\n/// \n/// Updates an employment. Use this endpoint to modify employment states for testing\n/// in the Sandbox environment. This endpoint will respond with a 404 outside of the\n/// Sandbox environment.\n/// \n/// For updating an employment's parameters outside of testing purposes, use [this\n/// Employment update endpoint](#operation/patch_update_employment).\n/// \n/// \n/// **Parameters:**\n/// \n/// - `employment_id: &'astr`: Employment ID (required)\nasync fn example_sandbox_patch_update_employment_4() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_4(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Pending),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/sandbox/struct.Sandbox.html#method.patch_update_employment_4" } }, @@ -107,7 +107,7 @@ "op": "add", "path": "/paths/~1v1~1timeoff/get/x-rust", "value": { - "example": "/// List Time Off\n/// \n/// Lists all Time Off records.\n/// \n/// **Parameters:**\n/// \n/// - `employment_id: Option`: Only show time off for a specific employment\n/// - `order_by: Option`: Sort order\n/// - `page: Option`: Starts fetching records after the given page\n/// - `page_size: Option`: Change the amount of records returned per page, defaults to 20, limited to 100\n/// - `sort_by: Option`: Field to sort by\n/// - `status: Option`: Filter time off by its status\n/// - `timeoff_type: Option`: Filter time off by its type\nasync fn example_time_off_get_index_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::ListTimeoffResponse = client\n .time_off()\n .get_index_timeoff(\n Some(\"some-string\".to_string()),\n Some(remote_api::types::OrderBy::Desc),\n Some(4 as i64),\n Some(4 as i64),\n Some(remote_api::types::SortBy::Status),\n Some(remote_api::types::GetIndexTimeoffStatus::CancelRequested),\n Some(remote_api::types::TimeoffType::MilitaryLeave),\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// List Time Off\n/// \n/// Lists all Time Off records.\n/// \n/// **Parameters:**\n/// \n/// - `employment_id: Option`: Only show time off for a specific employment\n/// - `order_by: Option`: Sort order\n/// - `page: Option`: Starts fetching records after the given page\n/// - `page_size: Option`: Change the amount of records returned per page, defaults to 20, limited to 100\n/// - `sort_by: Option`: Field to sort by\n/// - `status: Option`: Filter time off by its status\n/// - `timeoff_type: Option`: Filter time off by its type\nasync fn example_time_off_get_index_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::ListTimeoffResponse = client\n .time_off()\n .get_index_timeoff(\n Some(\"some-string\".to_string()),\n Some(remote_api::types::OrderBy::Desc),\n Some(4 as i64),\n Some(4 as i64),\n Some(remote_api::types::SortBy::Status),\n Some(remote_api::types::GetIndexTimeoffStatus::Requested),\n Some(remote_api::types::TimeoffType::PaternityLeave),\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/time_off/struct.TimeOff.html#method.get_index_timeoff" } }, @@ -115,7 +115,7 @@ "op": "add", "path": "/paths/~1v1~1timeoff/post/x-rust", "value": { - "example": "/// Create Time Off\n/// \n/// Creates a Time Off record\nasync fn example_time_off_post_create_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .post_create_timeoff(&remote_api::types::CreateApprovedTimeoffParams {\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n employment_id: \"some-string\".to_string(),\n end_date: chrono::Utc::now().date_naive(),\n notes: Some(\"some-string\".to_string()),\n start_date: chrono::Utc::now().date_naive(),\n timeoff_days: vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }],\n timeoff_type: remote_api::types::TimeoffType::MilitaryLeave,\n timezone: \"some-string\".to_string(),\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n status: Some(remote_api::types::CreateApprovedTimeoffParamsStatus::Approved),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// Create Time Off\n/// \n/// Creates a Time Off record\nasync fn example_time_off_post_create_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .post_create_timeoff(&remote_api::types::CreateApprovedTimeoffParams {\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n employment_id: \"some-string\".to_string(),\n end_date: chrono::Utc::now().date_naive(),\n notes: Some(\"some-string\".to_string()),\n start_date: chrono::Utc::now().date_naive(),\n timeoff_days: vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }],\n timeoff_type: remote_api::types::TimeoffType::PaternityLeave,\n timezone: \"some-string\".to_string(),\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n status: Some(remote_api::types::CreateApprovedTimeoffParamsStatus::Approved),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/time_off/struct.TimeOff.html#method.post_create_timeoff" } }, @@ -139,7 +139,7 @@ "op": "add", "path": "/paths/~1v1~1timeoff~1{id}/patch/x-rust", "value": { - "example": "/// Update Time Off\n/// \n/// Updates a Time Off record. This endpoint can also be used for cancelling a time off.\nasync fn example_time_off_patch_update_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::MilitaryLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// Update Time Off\n/// \n/// Updates a Time Off record. This endpoint can also be used for cancelling a time off.\nasync fn example_time_off_patch_update_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::PaternityLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/time_off/struct.TimeOff.html#method.patch_update_timeoff" } }, @@ -147,7 +147,7 @@ "op": "add", "path": "/paths/~1v1~1timeoff~1{id}/put/x-rust", "value": { - "example": "/// Update Time Off\n/// \n/// Updates a Time Off record. This endpoint can also be used for cancelling a time off.\nasync fn example_time_off_patch_update_timeoff_2() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff_2(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::MilitaryLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", + "example": "/// Update Time Off\n/// \n/// Updates a Time Off record. This endpoint can also be used for cancelling a time off.\nasync fn example_time_off_patch_update_timeoff_2() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff_2(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::PaternityLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n", "libDocsLink": "https://docs.rs/remote-api/latest/remote-api/time_off/struct.TimeOff.html#method.patch_update_timeoff_2" } } diff --git a/remote/src/lib.rs b/remote/src/lib.rs index a37d241..7fe816d 100644 --- a/remote/src/lib.rs +++ b/remote/src/lib.rs @@ -118,7 +118,7 @@ impl Client { /// an &str (`String` or `Vec` for example). As long as the function is /// given a valid API key your requests will work. /// Also takes reqwest client builders, for customizing the client's behaviour. - #[tracing::instrument] + #[tracing::instrument(skip(token))] #[cfg(not(target_arch = "wasm32"))] pub fn new_from_reqwest( token: T, @@ -181,7 +181,7 @@ impl Client { /// an &str (`String` or `Vec` for example). As long as the function is /// given a valid API key your requests will work. /// Also takes reqwest client builders, for customizing the client's behaviour. - #[tracing::instrument] + #[tracing::instrument(skip(token))] #[cfg(target_arch = "wasm32")] pub fn new_from_reqwest(token: T, builder_http: reqwest::ClientBuilder) -> Self where @@ -230,7 +230,7 @@ impl Client { /// Create a new Client struct. It takes a type that can convert into /// an &str (`String` or `Vec` for example). As long as the function is /// given a valid API key your requests will work. - #[tracing::instrument] + #[tracing::instrument(skip(token))] pub fn new(token: T) -> Self where T: ToString + std::fmt::Debug, diff --git a/remote/src/sandbox.rs b/remote/src/sandbox.rs index a52768e..5409339 100644 --- a/remote/src/sandbox.rs +++ b/remote/src/sandbox.rs @@ -12,7 +12,7 @@ impl Sandbox { Self { client } } - #[doc = "Update employment in the Sandbox Environment\n\nUpdates an employment. Use this endpoint to modify employment states for testing\nin the Sandbox environment. This endpoint will respond with a 404 outside of the\nSandbox environment.\n\nFor updating an employment's parameters outside of testing purposes, use [this\nEmployment update endpoint](#operation/patch_update_employment).\n\n\n**Parameters:**\n\n- `employment_id: &'astr`: Employment ID (required)\n\n```rust,no_run\nasync fn example_sandbox_patch_update_employment_4() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_4(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Deleted),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "Update employment in the Sandbox Environment\n\nUpdates an employment. Use this endpoint to modify employment states for testing\nin the Sandbox environment. This endpoint will respond with a 404 outside of the\nSandbox environment.\n\nFor updating an employment's parameters outside of testing purposes, use [this\nEmployment update endpoint](#operation/patch_update_employment).\n\n\n**Parameters:**\n\n- `employment_id: &'astr`: Employment ID (required)\n\n```rust,no_run\nasync fn example_sandbox_patch_update_employment_4() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_4(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Pending),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn patch_update_employment_4<'a>( &'a self, @@ -48,7 +48,7 @@ impl Sandbox { } } - #[doc = "Update employment in the Sandbox Environment\n\nUpdates an employment. Use this endpoint to modify employment states for testing\nin the Sandbox environment. This endpoint will respond with a 404 outside of the\nSandbox environment.\n\nFor updating an employment's parameters outside of testing purposes, use [this\nEmployment update endpoint](#operation/patch_update_employment).\n\n\n**Parameters:**\n\n- `employment_id: &'astr`: Employment ID (required)\n\n```rust,no_run\nasync fn example_sandbox_patch_update_employment_3() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_3(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Deleted),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "Update employment in the Sandbox Environment\n\nUpdates an employment. Use this endpoint to modify employment states for testing\nin the Sandbox environment. This endpoint will respond with a 404 outside of the\nSandbox environment.\n\nFor updating an employment's parameters outside of testing purposes, use [this\nEmployment update endpoint](#operation/patch_update_employment).\n\n\n**Parameters:**\n\n- `employment_id: &'astr`: Employment ID (required)\n\n```rust,no_run\nasync fn example_sandbox_patch_update_employment_3() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::EmploymentResponse = client\n .sandbox()\n .patch_update_employment_3(\n \"some-string\",\n &remote_api::types::EmploymentUpdateParams {\n status: Some(remote_api::types::EmploymentStatus::Pending),\n },\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn patch_update_employment_3<'a>( &'a self, diff --git a/remote/src/time_off.rs b/remote/src/time_off.rs index ef0ae40..3bfacd2 100644 --- a/remote/src/time_off.rs +++ b/remote/src/time_off.rs @@ -12,7 +12,7 @@ impl TimeOff { Self { client } } - #[doc = "List Time Off\n\nLists all Time Off records.\n\n**Parameters:**\n\n- `employment_id: Option`: Only show time off for a specific employment\n- `order_by: Option`: Sort order\n- `page: Option`: Starts fetching records after the given page\n- `page_size: Option`: Change the amount of records returned per page, defaults to 20, limited to 100\n- `sort_by: Option`: Field to sort by\n- `status: Option`: Filter time off by its status\n- `timeoff_type: Option`: Filter time off by its type\n\n```rust,no_run\nasync fn example_time_off_get_index_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::ListTimeoffResponse = client\n .time_off()\n .get_index_timeoff(\n Some(\"some-string\".to_string()),\n Some(remote_api::types::OrderBy::Desc),\n Some(4 as i64),\n Some(4 as i64),\n Some(remote_api::types::SortBy::Status),\n Some(remote_api::types::GetIndexTimeoffStatus::CancelRequested),\n Some(remote_api::types::TimeoffType::MilitaryLeave),\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "List Time Off\n\nLists all Time Off records.\n\n**Parameters:**\n\n- `employment_id: Option`: Only show time off for a specific employment\n- `order_by: Option`: Sort order\n- `page: Option`: Starts fetching records after the given page\n- `page_size: Option`: Change the amount of records returned per page, defaults to 20, limited to 100\n- `sort_by: Option`: Field to sort by\n- `status: Option`: Filter time off by its status\n- `timeoff_type: Option`: Filter time off by its type\n\n```rust,no_run\nasync fn example_time_off_get_index_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::ListTimeoffResponse = client\n .time_off()\n .get_index_timeoff(\n Some(\"some-string\".to_string()),\n Some(remote_api::types::OrderBy::Desc),\n Some(4 as i64),\n Some(4 as i64),\n Some(remote_api::types::SortBy::Status),\n Some(remote_api::types::GetIndexTimeoffStatus::Requested),\n Some(remote_api::types::TimeoffType::PaternityLeave),\n )\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn get_index_timeoff<'a>( &'a self, @@ -78,7 +78,7 @@ impl TimeOff { } } - #[doc = "Create Time Off\n\nCreates a Time Off record\n\n```rust,no_run\nasync fn example_time_off_post_create_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .post_create_timeoff(&remote_api::types::CreateApprovedTimeoffParams {\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n employment_id: \"some-string\".to_string(),\n end_date: chrono::Utc::now().date_naive(),\n notes: Some(\"some-string\".to_string()),\n start_date: chrono::Utc::now().date_naive(),\n timeoff_days: vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }],\n timeoff_type: remote_api::types::TimeoffType::MilitaryLeave,\n timezone: \"some-string\".to_string(),\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n status: Some(remote_api::types::CreateApprovedTimeoffParamsStatus::Approved),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "Create Time Off\n\nCreates a Time Off record\n\n```rust,no_run\nasync fn example_time_off_post_create_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .post_create_timeoff(&remote_api::types::CreateApprovedTimeoffParams {\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n employment_id: \"some-string\".to_string(),\n end_date: chrono::Utc::now().date_naive(),\n notes: Some(\"some-string\".to_string()),\n start_date: chrono::Utc::now().date_naive(),\n timeoff_days: vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }],\n timeoff_type: remote_api::types::TimeoffType::PaternityLeave,\n timezone: \"some-string\".to_string(),\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n status: Some(remote_api::types::CreateApprovedTimeoffParamsStatus::Approved),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn post_create_timeoff<'a>( &'a self, @@ -184,7 +184,7 @@ impl TimeOff { } } - #[doc = "Update Time Off\n\nUpdates a Time Off record. This endpoint can also be used for cancelling a time off.\n\n```rust,no_run\nasync fn example_time_off_patch_update_timeoff_2() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff_2(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::MilitaryLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "Update Time Off\n\nUpdates a Time Off record. This endpoint can also be used for cancelling a time off.\n\n```rust,no_run\nasync fn example_time_off_patch_update_timeoff_2() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff_2(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::PaternityLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn patch_update_timeoff_2<'a>( &'a self, @@ -215,7 +215,7 @@ impl TimeOff { } } - #[doc = "Update Time Off\n\nUpdates a Time Off record. This endpoint can also be used for cancelling a time off.\n\n```rust,no_run\nasync fn example_time_off_patch_update_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::MilitaryLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] + #[doc = "Update Time Off\n\nUpdates a Time Off record. This endpoint can also be used for cancelling a time off.\n\n```rust,no_run\nasync fn example_time_off_patch_update_timeoff() -> anyhow::Result<()> {\n let client = remote_api::Client::new_from_env();\n let result: remote_api::types::TimeoffResponse = client\n .time_off()\n .patch_update_timeoff(&remote_api::types::UpdateApprovedTimeoffParams {\n approved_at: Some(chrono::Utc::now()),\n approver_id: Some(\"some-string\".to_string()),\n cancel_reason: \"some-string\".to_string(),\n document: Some(remote_api::types::TimeoffDocumentParams {\n content: \"some-string\".to_string(),\n name: \"some-string\".to_string(),\n }),\n edit_reason: \"some-string\".to_string(),\n end_date: Some(chrono::Utc::now().date_naive()),\n notes: Some(\"some-string\".to_string()),\n start_date: Some(chrono::Utc::now().date_naive()),\n status: Some(remote_api::types::UpdateApprovedTimeoffParamsStatus::Cancelled),\n timeoff_days: Some(vec![remote_api::types::TimeoffDaysParams {\n day: Some(chrono::Utc::now().date_naive()),\n hours: Some(4 as i64),\n }]),\n timeoff_type: Some(remote_api::types::TimeoffType::PaternityLeave),\n timezone: Some(\"some-string\".to_string()),\n })\n .await?;\n println!(\"{:?}\", result);\n Ok(())\n}\n```"] #[tracing::instrument] pub async fn patch_update_timeoff<'a>( &'a self, diff --git a/remote/src/types.rs b/remote/src/types.rs index 0f033a4..558fe7e 100644 --- a/remote/src/types.rs +++ b/remote/src/types.rs @@ -66,7 +66,7 @@ pub mod base64 { } struct Base64DataVisitor; - impl<'de> Visitor<'de> for Base64DataVisitor { + impl Visitor<'_> for Base64DataVisitor { type Value = Base64Data; fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { write!(formatter, "a base64 encoded string") @@ -136,13 +136,14 @@ pub mod base64 { #[cfg(feature = "requests")] pub mod multipart { #![doc = " Multipart form data types."] + use std::path::PathBuf; #[doc = " An attachement to a multipart form."] #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Attachment { #[doc = " The name of the field."] pub name: String, - #[doc = " The filename of the attachment."] - pub filename: Option, + #[doc = " The file path of the attachment."] + pub filepath: Option, #[doc = " The content type of the attachment."] pub content_type: Option, #[doc = " The data of the attachment."] @@ -153,8 +154,8 @@ pub mod multipart { type Error = reqwest::Error; fn try_from(attachment: Attachment) -> Result { let mut part = reqwest::multipart::Part::bytes(attachment.data); - if let Some(filename) = attachment.filename { - part = part.file_name(filename); + if let Some(filepath) = attachment.filepath { + part = part.file_name(filepath.to_string_lossy().to_string()); } if let Some(content_type) = attachment.content_type { part = part.mime_str(&content_type)?; @@ -166,21 +167,11 @@ pub mod multipart { impl std::convert::TryFrom for Attachment { type Error = std::io::Error; fn try_from(path: std::path::PathBuf) -> Result { - let filename = path - .file_name() - .ok_or_else(|| { - std::io::Error::new(std::io::ErrorKind::InvalidData, "invalid filename") - })? - .to_str() - .ok_or_else(|| { - std::io::Error::new(std::io::ErrorKind::InvalidData, "invalid filename") - })? - .to_string(); let content_type = mime_guess::from_path(&path).first_raw(); - let data = std::fs::read(path)?; + let data = std::fs::read(&path)?; Ok(Attachment { name: "file".to_string(), - filename: Some(filename), + filepath: Some(path), content_type: content_type.map(|s| s.to_string()), data, })