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