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