open_lark/service/cloud_docs/sheets/v3/spreadsheet/
patch.rs1use reqwest::Method;
2use serde::Serialize;
3
4use crate::{
5 core::{
6 api_req::ApiRequest,
7 api_resp::{BaseResponse, RawResponse},
8 constants::AccessTokenType,
9 endpoints::cloud_docs::*,
10 http::Transport,
11 req_option::RequestOption,
12 SDKResult,
13 },
14 impl_executable_builder_owned,
15 service::sheets::v3::SpreadsheetService,
16};
17
18impl SpreadsheetService {
19 pub async fn patch(
21 &self,
22 request: PatchSpreadSheetRequest,
23 option: Option<RequestOption>,
24 ) -> SDKResult<BaseResponse<RawResponse>> {
25 let mut api_req = request.api_request;
26 api_req.http_method = Method::PATCH;
27 api_req.api_path = SHEETS_V3_SPREADSHEET_GET.replace("{}", &request.spreadsheet_token);
28 api_req.supported_access_token_types = vec![AccessTokenType::Tenant, AccessTokenType::User];
29
30 let api_resp = Transport::request(api_req, &self.config, option).await?;
31
32 Ok(api_resp)
33 }
34}
35
36#[derive(Default, Debug, Serialize)]
38pub struct PatchSpreadSheetRequest {
39 #[serde(skip)]
40 api_request: ApiRequest,
41 #[serde(skip)]
43 spreadsheet_token: String,
44 title: String,
46}
47
48impl PatchSpreadSheetRequest {
49 pub fn builder() -> PatchSpreadSheetRequestBuilder {
50 PatchSpreadSheetRequestBuilder::default()
51 }
52}
53
54#[derive(Default)]
55pub struct PatchSpreadSheetRequestBuilder {
56 request: PatchSpreadSheetRequest,
57}
58
59impl PatchSpreadSheetRequestBuilder {
60 pub fn title(mut self, title: impl ToString) -> Self {
62 self.request.title = title.to_string();
63 self
64 }
65
66 pub fn spreadsheet_token(mut self, spreadsheet_token: impl ToString) -> Self {
68 self.request.spreadsheet_token = spreadsheet_token.to_string();
69 self
70 }
71
72 pub fn build(mut self) -> PatchSpreadSheetRequest {
73 self.request.api_request.body = serde_json::to_vec(&self.request).unwrap();
74 self.request
75 }
76}
77
78impl_executable_builder_owned!(
80 PatchSpreadSheetRequestBuilder,
81 SpreadsheetService,
82 PatchSpreadSheetRequest,
83 BaseResponse<RawResponse>,
84 patch
85);