gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/task/v1/api.go (about) 1 // Package task 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 larktask 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) *TaskService { 24 t := &TaskService{config: config} 25 t.Task = &task{service: t} 26 t.TaskCollaborator = &taskCollaborator{service: t} 27 t.TaskComment = &taskComment{service: t} 28 t.TaskFollower = &taskFollower{service: t} 29 t.TaskReminder = &taskReminder{service: t} 30 return t 31 } 32 33 type TaskService struct { 34 config *larkcore.Config 35 Task *task // 任务 36 TaskCollaborator *taskCollaborator // 执行者 37 TaskComment *taskComment // 评论 38 TaskFollower *taskFollower // 关注人 39 TaskReminder *taskReminder // 提醒 40 } 41 42 type task struct { 43 service *TaskService 44 } 45 type taskCollaborator struct { 46 service *TaskService 47 } 48 type taskComment struct { 49 service *TaskService 50 } 51 type taskFollower struct { 52 service *TaskService 53 } 54 type taskReminder struct { 55 service *TaskService 56 } 57 58 // 批量删除执行者 59 // 60 // - 该接口用于批量删除执行者 61 // 62 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/batch_delete_collaborator 63 // 64 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/batchDeleteCollaborator_task.go 65 func (t *task) BatchDeleteCollaborator(ctx context.Context, req *BatchDeleteCollaboratorTaskReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteCollaboratorTaskResp, error) { 66 // 发起请求 67 apiReq := req.apiReq 68 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/batch_delete_collaborator" 69 apiReq.HttpMethod = http.MethodPost 70 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 71 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 72 if err != nil { 73 return nil, err 74 } 75 // 反序列响应结果 76 resp := &BatchDeleteCollaboratorTaskResp{ApiResp: apiResp} 77 err = apiResp.JSONUnmarshalBody(resp) 78 if err != nil { 79 return nil, err 80 } 81 return resp, err 82 } 83 84 // 批量删除关注人 85 // 86 // - 该接口用于批量删除关注人 87 // 88 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/batch_delete_follower 89 // 90 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/batchDeleteFollower_task.go 91 func (t *task) BatchDeleteFollower(ctx context.Context, req *BatchDeleteFollowerTaskReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteFollowerTaskResp, error) { 92 // 发起请求 93 apiReq := req.apiReq 94 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/batch_delete_follower" 95 apiReq.HttpMethod = http.MethodPost 96 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 97 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 98 if err != nil { 99 return nil, err 100 } 101 // 反序列响应结果 102 resp := &BatchDeleteFollowerTaskResp{ApiResp: apiResp} 103 err = apiResp.JSONUnmarshalBody(resp) 104 if err != nil { 105 return nil, err 106 } 107 return resp, err 108 } 109 110 // 完成任务 111 // 112 // - 该接口用于将任务状态修改为”已完成“ 113 // 114 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/complete 115 // 116 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/complete_task.go 117 func (t *task) Complete(ctx context.Context, req *CompleteTaskReq, options ...larkcore.RequestOptionFunc) (*CompleteTaskResp, error) { 118 // 发起请求 119 apiReq := req.apiReq 120 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/complete" 121 apiReq.HttpMethod = http.MethodPost 122 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 123 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 124 if err != nil { 125 return nil, err 126 } 127 // 反序列响应结果 128 resp := &CompleteTaskResp{ApiResp: apiResp} 129 err = apiResp.JSONUnmarshalBody(resp) 130 if err != nil { 131 return nil, err 132 } 133 return resp, err 134 } 135 136 // 创建任务 137 // 138 // - 该接口可以创建一个任务(基本信息),如果需要绑定协作者等需要调用别的资源管理接口。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型,不传时默认返回 open_id。当使用tenant_access_token 调用接口时,如果user_id_type为user_id,则不会返回creator_id。 139 // 140 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/create 141 // 142 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/create_task.go 143 func (t *task) Create(ctx context.Context, req *CreateTaskReq, options ...larkcore.RequestOptionFunc) (*CreateTaskResp, error) { 144 // 发起请求 145 apiReq := req.apiReq 146 apiReq.ApiPath = "/open-apis/task/v1/tasks" 147 apiReq.HttpMethod = http.MethodPost 148 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 149 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 150 if err != nil { 151 return nil, err 152 } 153 // 反序列响应结果 154 resp := &CreateTaskResp{ApiResp: apiResp} 155 err = apiResp.JSONUnmarshalBody(resp) 156 if err != nil { 157 return nil, err 158 } 159 return resp, err 160 } 161 162 // 删除任务 163 // 164 // - 该接口用于删除任务 165 // 166 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/delete 167 // 168 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/delete_task.go 169 func (t *task) Delete(ctx context.Context, req *DeleteTaskReq, options ...larkcore.RequestOptionFunc) (*DeleteTaskResp, error) { 170 // 发起请求 171 apiReq := req.apiReq 172 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id" 173 apiReq.HttpMethod = http.MethodDelete 174 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 175 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 176 if err != nil { 177 return nil, err 178 } 179 // 反序列响应结果 180 resp := &DeleteTaskResp{ApiResp: apiResp} 181 err = apiResp.JSONUnmarshalBody(resp) 182 if err != nil { 183 return nil, err 184 } 185 return resp, err 186 } 187 188 // 获取任务详情 189 // 190 // - 该接口用于获取任务详情,包括任务标题、描述、时间、来源等信息 191 // 192 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/get 193 // 194 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/get_task.go 195 func (t *task) Get(ctx context.Context, req *GetTaskReq, options ...larkcore.RequestOptionFunc) (*GetTaskResp, error) { 196 // 发起请求 197 apiReq := req.apiReq 198 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id" 199 apiReq.HttpMethod = http.MethodGet 200 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 201 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 202 if err != nil { 203 return nil, err 204 } 205 // 反序列响应结果 206 resp := &GetTaskResp{ApiResp: apiResp} 207 err = apiResp.JSONUnmarshalBody(resp) 208 if err != nil { 209 return nil, err 210 } 211 return resp, err 212 } 213 214 // 获取任务列表 215 // 216 // - 以分页的方式获取任务列表。当使用user_access_token时,获取与该用户身份相关的所有任务。当使用tenant_access_token时,获取以该应用身份通过“创建任务“接口创建的所有任务(并非获取该应用所在租户下所有用户创建的任务)。;本接口支持通过任务创建时间以及任务的完成状态对任务进行过滤。 217 // 218 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/list 219 // 220 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/list_task.go 221 func (t *task) List(ctx context.Context, req *ListTaskReq, options ...larkcore.RequestOptionFunc) (*ListTaskResp, error) { 222 // 发起请求 223 apiReq := req.apiReq 224 apiReq.ApiPath = "/open-apis/task/v1/tasks" 225 apiReq.HttpMethod = http.MethodGet 226 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 227 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 228 if err != nil { 229 return nil, err 230 } 231 // 反序列响应结果 232 resp := &ListTaskResp{ApiResp: apiResp} 233 err = apiResp.JSONUnmarshalBody(resp) 234 if err != nil { 235 return nil, err 236 } 237 return resp, err 238 } 239 func (t *task) ListByIterator(ctx context.Context, req *ListTaskReq, options ...larkcore.RequestOptionFunc) (*ListTaskIterator, error) { 240 return &ListTaskIterator{ 241 ctx: ctx, 242 req: req, 243 listFunc: t.List, 244 options: options, 245 limit: req.Limit}, nil 246 } 247 248 // 更新任务 249 // 250 // - 该接口用于修改任务的标题、描述、时间、来源等相关信息 251 // 252 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/patch 253 // 254 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/patch_task.go 255 func (t *task) Patch(ctx context.Context, req *PatchTaskReq, options ...larkcore.RequestOptionFunc) (*PatchTaskResp, error) { 256 // 发起请求 257 apiReq := req.apiReq 258 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id" 259 apiReq.HttpMethod = http.MethodPatch 260 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 261 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 262 if err != nil { 263 return nil, err 264 } 265 // 反序列响应结果 266 resp := &PatchTaskResp{ApiResp: apiResp} 267 err = apiResp.JSONUnmarshalBody(resp) 268 if err != nil { 269 return nil, err 270 } 271 return resp, err 272 } 273 274 // 取消完成任务 275 // 276 // - 该接口用于取消任务的已完成状态 277 // 278 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/uncomplete 279 // 280 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/uncomplete_task.go 281 func (t *task) Uncomplete(ctx context.Context, req *UncompleteTaskReq, options ...larkcore.RequestOptionFunc) (*UncompleteTaskResp, error) { 282 // 发起请求 283 apiReq := req.apiReq 284 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/uncomplete" 285 apiReq.HttpMethod = http.MethodPost 286 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 287 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 288 if err != nil { 289 return nil, err 290 } 291 // 反序列响应结果 292 resp := &UncompleteTaskResp{ApiResp: apiResp} 293 err = apiResp.JSONUnmarshalBody(resp) 294 if err != nil { 295 return nil, err 296 } 297 return resp, err 298 } 299 300 // 新增执行者 301 // 302 // - 该接口用于新增任务执行者,一次性可以添加多个执行者。新增的执行者必须是表示是用户的ID。 303 // 304 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/create 305 // 306 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/create_taskCollaborator.go 307 func (t *taskCollaborator) Create(ctx context.Context, req *CreateTaskCollaboratorReq, options ...larkcore.RequestOptionFunc) (*CreateTaskCollaboratorResp, error) { 308 // 发起请求 309 apiReq := req.apiReq 310 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/collaborators" 311 apiReq.HttpMethod = http.MethodPost 312 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 313 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 314 if err != nil { 315 return nil, err 316 } 317 // 反序列响应结果 318 resp := &CreateTaskCollaboratorResp{ApiResp: apiResp} 319 err = apiResp.JSONUnmarshalBody(resp) 320 if err != nil { 321 return nil, err 322 } 323 return resp, err 324 } 325 326 // 删除执行者 327 // 328 // - 该接口用于删除任务执行者 329 // 330 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/delete 331 // 332 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/delete_taskCollaborator.go 333 func (t *taskCollaborator) Delete(ctx context.Context, req *DeleteTaskCollaboratorReq, options ...larkcore.RequestOptionFunc) (*DeleteTaskCollaboratorResp, error) { 334 // 发起请求 335 apiReq := req.apiReq 336 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/collaborators/:collaborator_id" 337 apiReq.HttpMethod = http.MethodDelete 338 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 339 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 340 if err != nil { 341 return nil, err 342 } 343 // 反序列响应结果 344 resp := &DeleteTaskCollaboratorResp{ApiResp: apiResp} 345 err = apiResp.JSONUnmarshalBody(resp) 346 if err != nil { 347 return nil, err 348 } 349 return resp, err 350 } 351 352 // 获取一个任务的执行者列表 353 // 354 // - 该接口用于查询任务执行者列表,支持分页,最大值为50 355 // 356 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-collaborator/list 357 // 358 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/list_taskCollaborator.go 359 func (t *taskCollaborator) List(ctx context.Context, req *ListTaskCollaboratorReq, options ...larkcore.RequestOptionFunc) (*ListTaskCollaboratorResp, error) { 360 // 发起请求 361 apiReq := req.apiReq 362 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/collaborators" 363 apiReq.HttpMethod = http.MethodGet 364 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 365 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 366 if err != nil { 367 return nil, err 368 } 369 // 反序列响应结果 370 resp := &ListTaskCollaboratorResp{ApiResp: apiResp} 371 err = apiResp.JSONUnmarshalBody(resp) 372 if err != nil { 373 return nil, err 374 } 375 return resp, err 376 } 377 func (t *taskCollaborator) ListByIterator(ctx context.Context, req *ListTaskCollaboratorReq, options ...larkcore.RequestOptionFunc) (*ListTaskCollaboratorIterator, error) { 378 return &ListTaskCollaboratorIterator{ 379 ctx: ctx, 380 req: req, 381 listFunc: t.List, 382 options: options, 383 limit: req.Limit}, nil 384 } 385 386 // 创建评论 387 // 388 // - 该接口用于创建和回复任务的评论。当parent_id字段为0时,为创建评论;当parent_id不为0时,为回复某条评论 389 // 390 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/create 391 // 392 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/create_taskComment.go 393 func (t *taskComment) Create(ctx context.Context, req *CreateTaskCommentReq, options ...larkcore.RequestOptionFunc) (*CreateTaskCommentResp, error) { 394 // 发起请求 395 apiReq := req.apiReq 396 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/comments" 397 apiReq.HttpMethod = http.MethodPost 398 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 399 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 400 if err != nil { 401 return nil, err 402 } 403 // 反序列响应结果 404 resp := &CreateTaskCommentResp{ApiResp: apiResp} 405 err = apiResp.JSONUnmarshalBody(resp) 406 if err != nil { 407 return nil, err 408 } 409 return resp, err 410 } 411 412 // 删除评论 413 // 414 // - 该接口用于通过评论ID删除评论 415 // 416 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/delete 417 // 418 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/delete_taskComment.go 419 func (t *taskComment) Delete(ctx context.Context, req *DeleteTaskCommentReq, options ...larkcore.RequestOptionFunc) (*DeleteTaskCommentResp, error) { 420 // 发起请求 421 apiReq := req.apiReq 422 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/comments/:comment_id" 423 apiReq.HttpMethod = http.MethodDelete 424 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 425 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 426 if err != nil { 427 return nil, err 428 } 429 // 反序列响应结果 430 resp := &DeleteTaskCommentResp{ApiResp: apiResp} 431 err = apiResp.JSONUnmarshalBody(resp) 432 if err != nil { 433 return nil, err 434 } 435 return resp, err 436 } 437 438 // 获取评论详情 439 // 440 // - 该接口用于通过评论ID获取评论详情 441 // 442 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/get 443 // 444 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/get_taskComment.go 445 func (t *taskComment) Get(ctx context.Context, req *GetTaskCommentReq, options ...larkcore.RequestOptionFunc) (*GetTaskCommentResp, error) { 446 // 发起请求 447 apiReq := req.apiReq 448 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/comments/:comment_id" 449 apiReq.HttpMethod = http.MethodGet 450 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 451 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 452 if err != nil { 453 return nil, err 454 } 455 // 反序列响应结果 456 resp := &GetTaskCommentResp{ApiResp: apiResp} 457 err = apiResp.JSONUnmarshalBody(resp) 458 if err != nil { 459 return nil, err 460 } 461 return resp, err 462 } 463 464 // 获取评论列表 465 // 466 // - 该接口用于查询任务评论列表,支持分页,最大值为100 467 // 468 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/list 469 // 470 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/list_taskComment.go 471 func (t *taskComment) List(ctx context.Context, req *ListTaskCommentReq, options ...larkcore.RequestOptionFunc) (*ListTaskCommentResp, error) { 472 // 发起请求 473 apiReq := req.apiReq 474 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/comments" 475 apiReq.HttpMethod = http.MethodGet 476 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 477 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 478 if err != nil { 479 return nil, err 480 } 481 // 反序列响应结果 482 resp := &ListTaskCommentResp{ApiResp: apiResp} 483 err = apiResp.JSONUnmarshalBody(resp) 484 if err != nil { 485 return nil, err 486 } 487 return resp, err 488 } 489 func (t *taskComment) ListByIterator(ctx context.Context, req *ListTaskCommentReq, options ...larkcore.RequestOptionFunc) (*ListTaskCommentIterator, error) { 490 return &ListTaskCommentIterator{ 491 ctx: ctx, 492 req: req, 493 listFunc: t.List, 494 options: options, 495 limit: req.Limit}, nil 496 } 497 498 // 更新评论 499 // 500 // - 该接口用于更新评论内容 501 // 502 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-comment/update 503 // 504 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/update_taskComment.go 505 func (t *taskComment) Update(ctx context.Context, req *UpdateTaskCommentReq, options ...larkcore.RequestOptionFunc) (*UpdateTaskCommentResp, error) { 506 // 发起请求 507 apiReq := req.apiReq 508 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/comments/:comment_id" 509 apiReq.HttpMethod = http.MethodPut 510 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 511 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 512 if err != nil { 513 return nil, err 514 } 515 // 反序列响应结果 516 resp := &UpdateTaskCommentResp{ApiResp: apiResp} 517 err = apiResp.JSONUnmarshalBody(resp) 518 if err != nil { 519 return nil, err 520 } 521 return resp, err 522 } 523 524 // 新增关注人 525 // 526 // - 该接口用于创建任务关注人。可以一次性添加多位关注人。关注人ID要使用表示用户的ID。 527 // 528 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/create 529 // 530 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/create_taskFollower.go 531 func (t *taskFollower) Create(ctx context.Context, req *CreateTaskFollowerReq, options ...larkcore.RequestOptionFunc) (*CreateTaskFollowerResp, error) { 532 // 发起请求 533 apiReq := req.apiReq 534 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/followers" 535 apiReq.HttpMethod = http.MethodPost 536 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 537 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 538 if err != nil { 539 return nil, err 540 } 541 // 反序列响应结果 542 resp := &CreateTaskFollowerResp{ApiResp: apiResp} 543 err = apiResp.JSONUnmarshalBody(resp) 544 if err != nil { 545 return nil, err 546 } 547 return resp, err 548 } 549 550 // 删除关注人 551 // 552 // - 该接口用于删除任务关注人 553 // 554 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/delete 555 // 556 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/delete_taskFollower.go 557 func (t *taskFollower) Delete(ctx context.Context, req *DeleteTaskFollowerReq, options ...larkcore.RequestOptionFunc) (*DeleteTaskFollowerResp, error) { 558 // 发起请求 559 apiReq := req.apiReq 560 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/followers/:follower_id" 561 apiReq.HttpMethod = http.MethodDelete 562 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 563 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 564 if err != nil { 565 return nil, err 566 } 567 // 反序列响应结果 568 resp := &DeleteTaskFollowerResp{ApiResp: apiResp} 569 err = apiResp.JSONUnmarshalBody(resp) 570 if err != nil { 571 return nil, err 572 } 573 return resp, err 574 } 575 576 // 获取任务关注人列表 577 // 578 // - 该接口用于查询任务关注人列表,支持分页,最大值为50 579 // 580 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-follower/list 581 // 582 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/list_taskFollower.go 583 func (t *taskFollower) List(ctx context.Context, req *ListTaskFollowerReq, options ...larkcore.RequestOptionFunc) (*ListTaskFollowerResp, error) { 584 // 发起请求 585 apiReq := req.apiReq 586 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/followers" 587 apiReq.HttpMethod = http.MethodGet 588 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 589 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 590 if err != nil { 591 return nil, err 592 } 593 // 反序列响应结果 594 resp := &ListTaskFollowerResp{ApiResp: apiResp} 595 err = apiResp.JSONUnmarshalBody(resp) 596 if err != nil { 597 return nil, err 598 } 599 return resp, err 600 } 601 func (t *taskFollower) ListByIterator(ctx context.Context, req *ListTaskFollowerReq, options ...larkcore.RequestOptionFunc) (*ListTaskFollowerIterator, error) { 602 return &ListTaskFollowerIterator{ 603 ctx: ctx, 604 req: req, 605 listFunc: t.List, 606 options: options, 607 limit: req.Limit}, nil 608 } 609 610 // 新增提醒时间 611 // 612 // - 该接口用于创建任务的提醒时间。提醒时间在截止时间基础上做偏移,但是偏移后的结果不能早于当前时间。 613 // 614 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/create 615 // 616 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/create_taskReminder.go 617 func (t *taskReminder) Create(ctx context.Context, req *CreateTaskReminderReq, options ...larkcore.RequestOptionFunc) (*CreateTaskReminderResp, error) { 618 // 发起请求 619 apiReq := req.apiReq 620 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/reminders" 621 apiReq.HttpMethod = http.MethodPost 622 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 623 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 624 if err != nil { 625 return nil, err 626 } 627 // 反序列响应结果 628 resp := &CreateTaskReminderResp{ApiResp: apiResp} 629 err = apiResp.JSONUnmarshalBody(resp) 630 if err != nil { 631 return nil, err 632 } 633 return resp, err 634 } 635 636 // 删除提醒时间 637 // 638 // - 删除提醒时间,返回结果状态 639 // 640 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/delete 641 // 642 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/delete_taskReminder.go 643 func (t *taskReminder) Delete(ctx context.Context, req *DeleteTaskReminderReq, options ...larkcore.RequestOptionFunc) (*DeleteTaskReminderResp, error) { 644 // 发起请求 645 apiReq := req.apiReq 646 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/reminders/:reminder_id" 647 apiReq.HttpMethod = http.MethodDelete 648 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 649 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 650 if err != nil { 651 return nil, err 652 } 653 // 反序列响应结果 654 resp := &DeleteTaskReminderResp{ApiResp: apiResp} 655 err = apiResp.JSONUnmarshalBody(resp) 656 if err != nil { 657 return nil, err 658 } 659 return resp, err 660 } 661 662 // 查询提醒时间列表 663 // 664 // - 返回提醒时间列表,支持分页,最大值为50 665 // 666 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task-reminder/list 667 // 668 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/taskv1/list_taskReminder.go 669 func (t *taskReminder) List(ctx context.Context, req *ListTaskReminderReq, options ...larkcore.RequestOptionFunc) (*ListTaskReminderResp, error) { 670 // 发起请求 671 apiReq := req.apiReq 672 apiReq.ApiPath = "/open-apis/task/v1/tasks/:task_id/reminders" 673 apiReq.HttpMethod = http.MethodGet 674 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 675 apiResp, err := larkcore.Request(ctx, apiReq, t.service.config, options...) 676 if err != nil { 677 return nil, err 678 } 679 // 反序列响应结果 680 resp := &ListTaskReminderResp{ApiResp: apiResp} 681 err = apiResp.JSONUnmarshalBody(resp) 682 if err != nil { 683 return nil, err 684 } 685 return resp, err 686 } 687 func (t *taskReminder) ListByIterator(ctx context.Context, req *ListTaskReminderReq, options ...larkcore.RequestOptionFunc) (*ListTaskReminderIterator, error) { 688 return &ListTaskReminderIterator{ 689 ctx: ctx, 690 req: req, 691 listFunc: t.List, 692 options: options, 693 limit: req.Limit}, nil 694 }