gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/sheets/v3/api.go (about)

     1  // Package sheets code generated by oapi sdk gen
     2  /*
     3   * MIT License
     4   *
     5   * Copyright (c) 2022 Lark Technologies Pte. Ltd.
     6   *
     7   * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
     8   *
     9   * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
    10   *
    11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    12   */
    13  
    14  package larksheets
    15  
    16  import (
    17  	"context"
    18  	"net/http"
    19  
    20  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    21  )
    22  
    23  func NewService(config *larkcore.Config) *SheetsService {
    24  	s := &SheetsService{config: config}
    25  	s.Spreadsheet = &spreadsheet{service: s}
    26  	s.SpreadsheetSheet = &spreadsheetSheet{service: s}
    27  	s.SpreadsheetSheetFilter = &spreadsheetSheetFilter{service: s}
    28  	s.SpreadsheetSheetFilterView = &spreadsheetSheetFilterView{service: s}
    29  	s.SpreadsheetSheetFilterViewCondition = &spreadsheetSheetFilterViewCondition{service: s}
    30  	s.SpreadsheetSheetFloatImage = &spreadsheetSheetFloatImage{service: s}
    31  	return s
    32  }
    33  
    34  type SheetsService struct {
    35  	config                              *larkcore.Config
    36  	Spreadsheet                         *spreadsheet                         // 表格
    37  	SpreadsheetSheet                    *spreadsheetSheet                    // 单元格
    38  	SpreadsheetSheetFilter              *spreadsheetSheetFilter              // 筛选
    39  	SpreadsheetSheetFilterView          *spreadsheetSheetFilterView          // 筛选视图
    40  	SpreadsheetSheetFilterViewCondition *spreadsheetSheetFilterViewCondition // 筛选条件
    41  	SpreadsheetSheetFloatImage          *spreadsheetSheetFloatImage          // 浮动图片
    42  }
    43  
    44  type spreadsheet struct {
    45  	service *SheetsService
    46  }
    47  type spreadsheetSheet struct {
    48  	service *SheetsService
    49  }
    50  type spreadsheetSheetFilter struct {
    51  	service *SheetsService
    52  }
    53  type spreadsheetSheetFilterView struct {
    54  	service *SheetsService
    55  }
    56  type spreadsheetSheetFilterViewCondition struct {
    57  	service *SheetsService
    58  }
    59  type spreadsheetSheetFloatImage struct {
    60  	service *SheetsService
    61  }
    62  
    63  // 创建表格
    64  //
    65  // - 使用该接口可以在指定的目录下创建在线表格。
    66  //
    67  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet/create
    68  //
    69  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/create_spreadsheet.go
    70  func (s *spreadsheet) Create(ctx context.Context, req *CreateSpreadsheetReq, options ...larkcore.RequestOptionFunc) (*CreateSpreadsheetResp, error) {
    71  	// 发起请求
    72  	apiReq := req.apiReq
    73  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets"
    74  	apiReq.HttpMethod = http.MethodPost
    75  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
    76  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  	// 反序列响应结果
    81  	resp := &CreateSpreadsheetResp{ApiResp: apiResp}
    82  	err = apiResp.JSONUnmarshalBody(resp)
    83  	if err != nil {
    84  		return nil, err
    85  	}
    86  	return resp, err
    87  }
    88  
    89  // 查找单元格
    90  //
    91  // - 按照指定的条件查找子表的某个范围内的数据符合条件的单元格位置。请求体中的 range 和 find 字段为必填。
    92  //
    93  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/find
    94  //
    95  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/find_spreadsheetSheet.go
    96  func (s *spreadsheetSheet) Find(ctx context.Context, req *FindSpreadsheetSheetReq, options ...larkcore.RequestOptionFunc) (*FindSpreadsheetSheetResp, error) {
    97  	// 发起请求
    98  	apiReq := req.apiReq
    99  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/find"
   100  	apiReq.HttpMethod = http.MethodPost
   101  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
   102  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	// 反序列响应结果
   107  	resp := &FindSpreadsheetSheetResp{ApiResp: apiResp}
   108  	err = apiResp.JSONUnmarshalBody(resp)
   109  	if err != nil {
   110  		return nil, err
   111  	}
   112  	return resp, err
   113  }
   114  
   115  // 移动行列
   116  //
   117  // - 该接口用于移动行列,行列被移动到目标位置后,原本在目标位置的行列会对应右移或下移。
   118  //
   119  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/move_dimension
   120  //
   121  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/moveDimension_spreadsheetSheet.go
   122  func (s *spreadsheetSheet) MoveDimension(ctx context.Context, req *MoveDimensionSpreadsheetSheetReq, options ...larkcore.RequestOptionFunc) (*MoveDimensionSpreadsheetSheetResp, error) {
   123  	// 发起请求
   124  	apiReq := req.apiReq
   125  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/move_dimension"
   126  	apiReq.HttpMethod = http.MethodPost
   127  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   128  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	// 反序列响应结果
   133  	resp := &MoveDimensionSpreadsheetSheetResp{ApiResp: apiResp}
   134  	err = apiResp.JSONUnmarshalBody(resp)
   135  	if err != nil {
   136  		return nil, err
   137  	}
   138  	return resp, err
   139  }
   140  
   141  // 替换单元格
   142  //
   143  // - 按照指定的条件查找子表的某个范围内的数据符合条件的单元格并替换值,返回替换成功的单元格位置。一次请求最多允许替换5000个单元格,如果超过请将range缩小范围再操作。请求体中的 range、find、replaccement 字段必填。
   144  //
   145  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet/replace
   146  //
   147  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/replace_spreadsheetSheet.go
   148  func (s *spreadsheetSheet) Replace(ctx context.Context, req *ReplaceSpreadsheetSheetReq, options ...larkcore.RequestOptionFunc) (*ReplaceSpreadsheetSheetResp, error) {
   149  	// 发起请求
   150  	apiReq := req.apiReq
   151  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/replace"
   152  	apiReq.HttpMethod = http.MethodPost
   153  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
   154  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	// 反序列响应结果
   159  	resp := &ReplaceSpreadsheetSheetResp{ApiResp: apiResp}
   160  	err = apiResp.JSONUnmarshalBody(resp)
   161  	if err != nil {
   162  		return nil, err
   163  	}
   164  	return resp, err
   165  }
   166  
   167  // 创建筛选
   168  //
   169  // - 在子表内创建筛选。
   170  //
   171  // - 参数值可参考[筛选指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/filter-user-guide)
   172  //
   173  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/create
   174  //
   175  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/create_spreadsheetSheetFilter.go
   176  func (s *spreadsheetSheetFilter) Create(ctx context.Context, req *CreateSpreadsheetSheetFilterReq, options ...larkcore.RequestOptionFunc) (*CreateSpreadsheetSheetFilterResp, error) {
   177  	// 发起请求
   178  	apiReq := req.apiReq
   179  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter"
   180  	apiReq.HttpMethod = http.MethodPost
   181  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   182  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   183  	if err != nil {
   184  		return nil, err
   185  	}
   186  	// 反序列响应结果
   187  	resp := &CreateSpreadsheetSheetFilterResp{ApiResp: apiResp}
   188  	err = apiResp.JSONUnmarshalBody(resp)
   189  	if err != nil {
   190  		return nil, err
   191  	}
   192  	return resp, err
   193  }
   194  
   195  // 删除筛选
   196  //
   197  // - 删除子表的筛选
   198  //
   199  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/delete
   200  //
   201  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/delete_spreadsheetSheetFilter.go
   202  func (s *spreadsheetSheetFilter) Delete(ctx context.Context, req *DeleteSpreadsheetSheetFilterReq, options ...larkcore.RequestOptionFunc) (*DeleteSpreadsheetSheetFilterResp, error) {
   203  	// 发起请求
   204  	apiReq := req.apiReq
   205  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter"
   206  	apiReq.HttpMethod = http.MethodDelete
   207  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   208  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   209  	if err != nil {
   210  		return nil, err
   211  	}
   212  	// 反序列响应结果
   213  	resp := &DeleteSpreadsheetSheetFilterResp{ApiResp: apiResp}
   214  	err = apiResp.JSONUnmarshalBody(resp)
   215  	if err != nil {
   216  		return nil, err
   217  	}
   218  	return resp, err
   219  }
   220  
   221  // 获取筛选
   222  //
   223  // - 获取子表的详细筛选信息
   224  //
   225  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/get
   226  //
   227  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/get_spreadsheetSheetFilter.go
   228  func (s *spreadsheetSheetFilter) Get(ctx context.Context, req *GetSpreadsheetSheetFilterReq, options ...larkcore.RequestOptionFunc) (*GetSpreadsheetSheetFilterResp, error) {
   229  	// 发起请求
   230  	apiReq := req.apiReq
   231  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter"
   232  	apiReq.HttpMethod = http.MethodGet
   233  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   234  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   235  	if err != nil {
   236  		return nil, err
   237  	}
   238  	// 反序列响应结果
   239  	resp := &GetSpreadsheetSheetFilterResp{ApiResp: apiResp}
   240  	err = apiResp.JSONUnmarshalBody(resp)
   241  	if err != nil {
   242  		return nil, err
   243  	}
   244  	return resp, err
   245  }
   246  
   247  // 更新筛选
   248  //
   249  // - 更新子表筛选范围中的列筛选条件。
   250  //
   251  // - 参数值可参考[筛选指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/filter-user-guide)
   252  //
   253  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter/update
   254  //
   255  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/update_spreadsheetSheetFilter.go
   256  func (s *spreadsheetSheetFilter) Update(ctx context.Context, req *UpdateSpreadsheetSheetFilterReq, options ...larkcore.RequestOptionFunc) (*UpdateSpreadsheetSheetFilterResp, error) {
   257  	// 发起请求
   258  	apiReq := req.apiReq
   259  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter"
   260  	apiReq.HttpMethod = http.MethodPut
   261  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   262  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   263  	if err != nil {
   264  		return nil, err
   265  	}
   266  	// 反序列响应结果
   267  	resp := &UpdateSpreadsheetSheetFilterResp{ApiResp: apiResp}
   268  	err = apiResp.JSONUnmarshalBody(resp)
   269  	if err != nil {
   270  		return nil, err
   271  	}
   272  	return resp, err
   273  }
   274  
   275  // 创建筛选视图
   276  //
   277  // - 根据传入的参数创建一个筛选视图。Id 和 名字可选,不填的话会默认生成;range 必填。Id 长度为10,由 0-9、a-z、A-Z 组合生成。名字长度不超过100。单个子表内的筛选视图个数不超过 150。
   278  //
   279  // - 筛选范围的设置参考:[筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   280  //
   281  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view/create
   282  //
   283  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/create_spreadsheetSheetFilterView.go
   284  func (s *spreadsheetSheetFilterView) Create(ctx context.Context, req *CreateSpreadsheetSheetFilterViewReq, options ...larkcore.RequestOptionFunc) (*CreateSpreadsheetSheetFilterViewResp, error) {
   285  	// 发起请求
   286  	apiReq := req.apiReq
   287  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views"
   288  	apiReq.HttpMethod = http.MethodPost
   289  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   290  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   291  	if err != nil {
   292  		return nil, err
   293  	}
   294  	// 反序列响应结果
   295  	resp := &CreateSpreadsheetSheetFilterViewResp{ApiResp: apiResp}
   296  	err = apiResp.JSONUnmarshalBody(resp)
   297  	if err != nil {
   298  		return nil, err
   299  	}
   300  	return resp, err
   301  }
   302  
   303  // 删除筛选视图
   304  //
   305  // - 删除指定 id 对应的筛选视图。
   306  //
   307  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view/delete
   308  //
   309  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/delete_spreadsheetSheetFilterView.go
   310  func (s *spreadsheetSheetFilterView) Delete(ctx context.Context, req *DeleteSpreadsheetSheetFilterViewReq, options ...larkcore.RequestOptionFunc) (*DeleteSpreadsheetSheetFilterViewResp, error) {
   311  	// 发起请求
   312  	apiReq := req.apiReq
   313  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id"
   314  	apiReq.HttpMethod = http.MethodDelete
   315  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   316  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   317  	if err != nil {
   318  		return nil, err
   319  	}
   320  	// 反序列响应结果
   321  	resp := &DeleteSpreadsheetSheetFilterViewResp{ApiResp: apiResp}
   322  	err = apiResp.JSONUnmarshalBody(resp)
   323  	if err != nil {
   324  		return nil, err
   325  	}
   326  	return resp, err
   327  }
   328  
   329  // 获取筛选视图
   330  //
   331  // - 获取指定筛选视图 id 的名字和筛选范围。
   332  //
   333  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view/get
   334  //
   335  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/get_spreadsheetSheetFilterView.go
   336  func (s *spreadsheetSheetFilterView) Get(ctx context.Context, req *GetSpreadsheetSheetFilterViewReq, options ...larkcore.RequestOptionFunc) (*GetSpreadsheetSheetFilterViewResp, error) {
   337  	// 发起请求
   338  	apiReq := req.apiReq
   339  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id"
   340  	apiReq.HttpMethod = http.MethodGet
   341  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   342  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   343  	if err != nil {
   344  		return nil, err
   345  	}
   346  	// 反序列响应结果
   347  	resp := &GetSpreadsheetSheetFilterViewResp{ApiResp: apiResp}
   348  	err = apiResp.JSONUnmarshalBody(resp)
   349  	if err != nil {
   350  		return nil, err
   351  	}
   352  	return resp, err
   353  }
   354  
   355  // 更新筛选视图
   356  //
   357  // - 更新筛选视图的名字或者筛选范围。名字长度不超过100,不能重复即子表内唯一;筛选范围不超过子表的最大范围。
   358  //
   359  // - 筛选范围的设置参考:[筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   360  //
   361  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view/patch
   362  //
   363  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/patch_spreadsheetSheetFilterView.go
   364  func (s *spreadsheetSheetFilterView) Patch(ctx context.Context, req *PatchSpreadsheetSheetFilterViewReq, options ...larkcore.RequestOptionFunc) (*PatchSpreadsheetSheetFilterViewResp, error) {
   365  	// 发起请求
   366  	apiReq := req.apiReq
   367  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id"
   368  	apiReq.HttpMethod = http.MethodPatch
   369  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   370  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   371  	if err != nil {
   372  		return nil, err
   373  	}
   374  	// 反序列响应结果
   375  	resp := &PatchSpreadsheetSheetFilterViewResp{ApiResp: apiResp}
   376  	err = apiResp.JSONUnmarshalBody(resp)
   377  	if err != nil {
   378  		return nil, err
   379  	}
   380  	return resp, err
   381  }
   382  
   383  // 查询筛选视图
   384  //
   385  // - 查询子表内所有的筛选视图基本信息,包括 id、name 和 range
   386  //
   387  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view/query
   388  //
   389  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/query_spreadsheetSheetFilterView.go
   390  func (s *spreadsheetSheetFilterView) Query(ctx context.Context, req *QuerySpreadsheetSheetFilterViewReq, options ...larkcore.RequestOptionFunc) (*QuerySpreadsheetSheetFilterViewResp, error) {
   391  	// 发起请求
   392  	apiReq := req.apiReq
   393  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/query"
   394  	apiReq.HttpMethod = http.MethodGet
   395  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   396  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   397  	if err != nil {
   398  		return nil, err
   399  	}
   400  	// 反序列响应结果
   401  	resp := &QuerySpreadsheetSheetFilterViewResp{ApiResp: apiResp}
   402  	err = apiResp.JSONUnmarshalBody(resp)
   403  	if err != nil {
   404  		return nil, err
   405  	}
   406  	return resp, err
   407  }
   408  
   409  // 创建筛选条件
   410  //
   411  // - 在筛选视图的筛选范围的某一列创建筛选条件。
   412  //
   413  // - 筛选条件参考 [筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   414  //
   415  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/create
   416  //
   417  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/create_spreadsheetSheetFilterViewCondition.go
   418  func (s *spreadsheetSheetFilterViewCondition) Create(ctx context.Context, req *CreateSpreadsheetSheetFilterViewConditionReq, options ...larkcore.RequestOptionFunc) (*CreateSpreadsheetSheetFilterViewConditionResp, error) {
   419  	// 发起请求
   420  	apiReq := req.apiReq
   421  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id/conditions"
   422  	apiReq.HttpMethod = http.MethodPost
   423  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   424  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   425  	if err != nil {
   426  		return nil, err
   427  	}
   428  	// 反序列响应结果
   429  	resp := &CreateSpreadsheetSheetFilterViewConditionResp{ApiResp: apiResp}
   430  	err = apiResp.JSONUnmarshalBody(resp)
   431  	if err != nil {
   432  		return nil, err
   433  	}
   434  	return resp, err
   435  }
   436  
   437  // 删除筛选条件
   438  //
   439  // - 删除筛选视图的筛选范围某一列的筛选条件。
   440  //
   441  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/delete
   442  //
   443  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/delete_spreadsheetSheetFilterViewCondition.go
   444  func (s *spreadsheetSheetFilterViewCondition) Delete(ctx context.Context, req *DeleteSpreadsheetSheetFilterViewConditionReq, options ...larkcore.RequestOptionFunc) (*DeleteSpreadsheetSheetFilterViewConditionResp, error) {
   445  	// 发起请求
   446  	apiReq := req.apiReq
   447  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id/conditions/:condition_id"
   448  	apiReq.HttpMethod = http.MethodDelete
   449  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   450  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   451  	if err != nil {
   452  		return nil, err
   453  	}
   454  	// 反序列响应结果
   455  	resp := &DeleteSpreadsheetSheetFilterViewConditionResp{ApiResp: apiResp}
   456  	err = apiResp.JSONUnmarshalBody(resp)
   457  	if err != nil {
   458  		return nil, err
   459  	}
   460  	return resp, err
   461  }
   462  
   463  // 获取筛选条件
   464  //
   465  // - 获取筛选视图某列的筛选条件信息。
   466  //
   467  // - 筛选条件含义参考 [筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   468  //
   469  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/get
   470  //
   471  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/get_spreadsheetSheetFilterViewCondition.go
   472  func (s *spreadsheetSheetFilterViewCondition) Get(ctx context.Context, req *GetSpreadsheetSheetFilterViewConditionReq, options ...larkcore.RequestOptionFunc) (*GetSpreadsheetSheetFilterViewConditionResp, error) {
   473  	// 发起请求
   474  	apiReq := req.apiReq
   475  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id/conditions/:condition_id"
   476  	apiReq.HttpMethod = http.MethodGet
   477  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   478  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   479  	if err != nil {
   480  		return nil, err
   481  	}
   482  	// 反序列响应结果
   483  	resp := &GetSpreadsheetSheetFilterViewConditionResp{ApiResp: apiResp}
   484  	err = apiResp.JSONUnmarshalBody(resp)
   485  	if err != nil {
   486  		return nil, err
   487  	}
   488  	return resp, err
   489  }
   490  
   491  // 查询筛选条件
   492  //
   493  // - 查询一个筛选视图的所有筛选条件,返回筛选视图的筛选范围内的筛选条件。
   494  //
   495  // - 筛选条件含义可参考 [筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   496  //
   497  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/query
   498  //
   499  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/query_spreadsheetSheetFilterViewCondition.go
   500  func (s *spreadsheetSheetFilterViewCondition) Query(ctx context.Context, req *QuerySpreadsheetSheetFilterViewConditionReq, options ...larkcore.RequestOptionFunc) (*QuerySpreadsheetSheetFilterViewConditionResp, error) {
   501  	// 发起请求
   502  	apiReq := req.apiReq
   503  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id/conditions/query"
   504  	apiReq.HttpMethod = http.MethodGet
   505  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   506  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   507  	if err != nil {
   508  		return nil, err
   509  	}
   510  	// 反序列响应结果
   511  	resp := &QuerySpreadsheetSheetFilterViewConditionResp{ApiResp: apiResp}
   512  	err = apiResp.JSONUnmarshalBody(resp)
   513  	if err != nil {
   514  		return nil, err
   515  	}
   516  	return resp, err
   517  }
   518  
   519  // 更新筛选条件
   520  //
   521  // - 更新筛选视图范围的某列的筛选条件,condition id 即为列的字母号。
   522  //
   523  // - 筛选条件参数可参考 [筛选视图的筛选条件指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/filter-view-condition-user-guide)
   524  //
   525  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-filter_view-condition/update
   526  //
   527  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/update_spreadsheetSheetFilterViewCondition.go
   528  func (s *spreadsheetSheetFilterViewCondition) Update(ctx context.Context, req *UpdateSpreadsheetSheetFilterViewConditionReq, options ...larkcore.RequestOptionFunc) (*UpdateSpreadsheetSheetFilterViewConditionResp, error) {
   529  	// 发起请求
   530  	apiReq := req.apiReq
   531  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/filter_views/:filter_view_id/conditions/:condition_id"
   532  	apiReq.HttpMethod = http.MethodPut
   533  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   534  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   535  	if err != nil {
   536  		return nil, err
   537  	}
   538  	// 反序列响应结果
   539  	resp := &UpdateSpreadsheetSheetFilterViewConditionResp{ApiResp: apiResp}
   540  	err = apiResp.JSONUnmarshalBody(resp)
   541  	if err != nil {
   542  		return nil, err
   543  	}
   544  	return resp, err
   545  }
   546  
   547  // 创建浮动图片
   548  //
   549  // - 根据传入的参数创建一张浮动图片。Float_image_token ([上传图片至表格后得到](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/upload_all))和range(只支持一个单元格) 必填。Float_image_id 可选,不填的话会默认生成,长度为10,由 0-9、a-z、A-Z 组合生成。表格内不重复的图片(浮动图片+单元格图片)总数不超过4000。width 和 height 为图片展示的宽高,可选,不填的话会使用图片的真实宽高。offset_x 和 offset_y 为图片左上角距离所在单元格左上角的偏移,可选,默认为 0。
   550  //
   551  // - 浮动图片的设置参考:[浮动图片指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/float-image-user-guide)
   552  //
   553  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/create
   554  //
   555  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/create_spreadsheetSheetFloatImage.go
   556  func (s *spreadsheetSheetFloatImage) Create(ctx context.Context, req *CreateSpreadsheetSheetFloatImageReq, options ...larkcore.RequestOptionFunc) (*CreateSpreadsheetSheetFloatImageResp, error) {
   557  	// 发起请求
   558  	apiReq := req.apiReq
   559  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/float_images"
   560  	apiReq.HttpMethod = http.MethodPost
   561  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   562  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   563  	if err != nil {
   564  		return nil, err
   565  	}
   566  	// 反序列响应结果
   567  	resp := &CreateSpreadsheetSheetFloatImageResp{ApiResp: apiResp}
   568  	err = apiResp.JSONUnmarshalBody(resp)
   569  	if err != nil {
   570  		return nil, err
   571  	}
   572  	return resp, err
   573  }
   574  
   575  // 删除浮动图片
   576  //
   577  // - 删除 float_image_id 对应的浮动图片。
   578  //
   579  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/delete
   580  //
   581  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/delete_spreadsheetSheetFloatImage.go
   582  func (s *spreadsheetSheetFloatImage) Delete(ctx context.Context, req *DeleteSpreadsheetSheetFloatImageReq, options ...larkcore.RequestOptionFunc) (*DeleteSpreadsheetSheetFloatImageResp, error) {
   583  	// 发起请求
   584  	apiReq := req.apiReq
   585  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/float_images/:float_image_id"
   586  	apiReq.HttpMethod = http.MethodDelete
   587  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   588  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   589  	if err != nil {
   590  		return nil, err
   591  	}
   592  	// 反序列响应结果
   593  	resp := &DeleteSpreadsheetSheetFloatImageResp{ApiResp: apiResp}
   594  	err = apiResp.JSONUnmarshalBody(resp)
   595  	if err != nil {
   596  		return nil, err
   597  	}
   598  	return resp, err
   599  }
   600  
   601  // 获取浮动图片
   602  //
   603  // - 根据 float_image_id 获取对应浮动图片的信息。
   604  //
   605  // - 浮动图片参考:[浮动图片指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/float-image-user-guide)
   606  //
   607  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/get
   608  //
   609  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/get_spreadsheetSheetFloatImage.go
   610  func (s *spreadsheetSheetFloatImage) Get(ctx context.Context, req *GetSpreadsheetSheetFloatImageReq, options ...larkcore.RequestOptionFunc) (*GetSpreadsheetSheetFloatImageResp, error) {
   611  	// 发起请求
   612  	apiReq := req.apiReq
   613  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/float_images/:float_image_id"
   614  	apiReq.HttpMethod = http.MethodGet
   615  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   616  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   617  	if err != nil {
   618  		return nil, err
   619  	}
   620  	// 反序列响应结果
   621  	resp := &GetSpreadsheetSheetFloatImageResp{ApiResp: apiResp}
   622  	err = apiResp.JSONUnmarshalBody(resp)
   623  	if err != nil {
   624  		return nil, err
   625  	}
   626  	return resp, err
   627  }
   628  
   629  // 更新浮动图片
   630  //
   631  // - 更新已有的浮动图片位置和宽高,包括 range、width、height、offset_x 和 offset_y,不包括 float_image_id 和 float_image_token。
   632  //
   633  // - 浮动图片更新参考:[浮动图片指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/float-image-user-guide)
   634  //
   635  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/patch
   636  //
   637  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/patch_spreadsheetSheetFloatImage.go
   638  func (s *spreadsheetSheetFloatImage) Patch(ctx context.Context, req *PatchSpreadsheetSheetFloatImageReq, options ...larkcore.RequestOptionFunc) (*PatchSpreadsheetSheetFloatImageResp, error) {
   639  	// 发起请求
   640  	apiReq := req.apiReq
   641  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/float_images/:float_image_id"
   642  	apiReq.HttpMethod = http.MethodPatch
   643  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   644  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   645  	if err != nil {
   646  		return nil, err
   647  	}
   648  	// 反序列响应结果
   649  	resp := &PatchSpreadsheetSheetFloatImageResp{ApiResp: apiResp}
   650  	err = apiResp.JSONUnmarshalBody(resp)
   651  	if err != nil {
   652  		return nil, err
   653  	}
   654  	return resp, err
   655  }
   656  
   657  // 查询浮动图片
   658  //
   659  // - 返回子表内所有的浮动图片信息。
   660  //
   661  // - 浮动图片参考:[浮动图片指南](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/float-image-user-guide)
   662  //
   663  // - 官网API文档链接:https://open.feishu.cn/document/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-float_image/query
   664  //
   665  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/sheetsv3/query_spreadsheetSheetFloatImage.go
   666  func (s *spreadsheetSheetFloatImage) Query(ctx context.Context, req *QuerySpreadsheetSheetFloatImageReq, options ...larkcore.RequestOptionFunc) (*QuerySpreadsheetSheetFloatImageResp, error) {
   667  	// 发起请求
   668  	apiReq := req.apiReq
   669  	apiReq.ApiPath = "/open-apis/sheets/v3/spreadsheets/:spreadsheet_token/sheets/:sheet_id/float_images/query"
   670  	apiReq.HttpMethod = http.MethodGet
   671  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
   672  	apiResp, err := larkcore.Request(ctx, apiReq, s.service.config, options...)
   673  	if err != nil {
   674  		return nil, err
   675  	}
   676  	// 反序列响应结果
   677  	resp := &QuerySpreadsheetSheetFloatImageResp{ApiResp: apiResp}
   678  	err = apiResp.JSONUnmarshalBody(resp)
   679  	if err != nil {
   680  		return nil, err
   681  	}
   682  	return resp, err
   683  }