gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/task/v1/model.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 "fmt" 18 19 "context" 20 "errors" 21 22 "gitee.com/larksuite/oapi-sdk-go/v3/event" 23 24 "gitee.com/larksuite/oapi-sdk-go/v3/core" 25 ) 26 27 const ( 28 UserIdTypeUserId = "user_id" // 以user_id来识别用户 29 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 30 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 31 ) 32 33 const ( 34 UserIdTypeBatchDeleteFollowerTaskUserId = "user_id" // 以user_id来识别用户 35 UserIdTypeBatchDeleteFollowerTaskUnionId = "union_id" // 以union_id来识别用户 36 UserIdTypeBatchDeleteFollowerTaskOpenId = "open_id" // 以open_id来识别用户 37 ) 38 39 const ( 40 UserIdTypeCreateTaskUserId = "user_id" // 以user_id来识别用户 41 UserIdTypeCreateTaskUnionId = "union_id" // 以union_id来识别用户 42 UserIdTypeCreateTaskOpenId = "open_id" // 以open_id来识别用户 43 ) 44 45 const ( 46 UserIdTypeGetTaskUserId = "user_id" // 以user_id来识别用户 47 UserIdTypeGetTaskUnionId = "union_id" // 以union_id来识别用户 48 UserIdTypeGetTaskOpenId = "open_id" // 以open_id来识别用户 49 ) 50 51 const ( 52 UserIdTypeListTaskUserId = "user_id" // 以user_id来识别用户 53 UserIdTypeListTaskUnionId = "union_id" // 以union_id来识别用户 54 UserIdTypeListTaskOpenId = "open_id" // 以open_id来识别用户 55 ) 56 57 const ( 58 UserIdTypePatchTaskUserId = "user_id" // 以user_id来识别用户 59 UserIdTypePatchTaskUnionId = "union_id" // 以union_id来识别用户 60 UserIdTypePatchTaskOpenId = "open_id" // 以open_id来识别用户 61 ) 62 63 const ( 64 UserIdTypeCreateTaskCollaboratorUserId = "user_id" // 以user_id来识别用户 65 UserIdTypeCreateTaskCollaboratorUnionId = "union_id" // 以union_id来识别用户 66 UserIdTypeCreateTaskCollaboratorOpenId = "open_id" // 以open_id来识别用户 67 ) 68 69 const ( 70 UserIdTypeDeleteTaskCollaboratorUserId = "user_id" // 以user_id来识别用户 71 UserIdTypeDeleteTaskCollaboratorUnionId = "union_id" // 以union_id来识别用户 72 UserIdTypeDeleteTaskCollaboratorOpenId = "open_id" // 以open_id来识别用户 73 ) 74 75 const ( 76 UserIdTypeListTaskCollaboratorUserId = "user_id" // 以user_id来识别用户 77 UserIdTypeListTaskCollaboratorUnionId = "union_id" // 以union_id来识别用户 78 UserIdTypeListTaskCollaboratorOpenId = "open_id" // 以open_id来识别用户 79 ) 80 81 const ( 82 ListDirectionDown = 0 // 按照回复时间从小到大查询 83 ListDirectionUp = 1 // 按照回复时间从大到小查询 84 85 ) 86 87 const ( 88 UserIdTypeCreateTaskFollowerUserId = "user_id" // 以user_id来识别用户 89 UserIdTypeCreateTaskFollowerUnionId = "union_id" // 以union_id来识别用户 90 UserIdTypeCreateTaskFollowerOpenId = "open_id" // 以open_id来识别用户 91 ) 92 93 const ( 94 UserIdTypeDeleteTaskFollowerUserId = "user_id" // 以user_id来识别用户 95 UserIdTypeDeleteTaskFollowerUnionId = "union_id" // 以union_id来识别用户 96 UserIdTypeDeleteTaskFollowerOpenId = "open_id" // 以open_id来识别用户 97 ) 98 99 const ( 100 UserIdTypeListTaskFollowerUserId = "user_id" // 以user_id来识别用户 101 UserIdTypeListTaskFollowerUnionId = "union_id" // 以union_id来识别用户 102 UserIdTypeListTaskFollowerOpenId = "open_id" // 以open_id来识别用户 103 ) 104 105 type Collaborator struct { 106 Id *string `json:"id,omitempty"` // 任务执行者的 ID 107 IdList []string `json:"id_list,omitempty"` // 执行者的用户ID列表。 108 } 109 110 type CollaboratorBuilder struct { 111 id string // 任务执行者的 ID 112 idFlag bool 113 idList []string // 执行者的用户ID列表。 114 idListFlag bool 115 } 116 117 func NewCollaboratorBuilder() *CollaboratorBuilder { 118 builder := &CollaboratorBuilder{} 119 return builder 120 } 121 122 // 任务执行者的 ID 123 // 124 // 示例值:ou_99e1a581b36ecc4862cbfbce473f1234 125 func (builder *CollaboratorBuilder) Id(id string) *CollaboratorBuilder { 126 builder.id = id 127 builder.idFlag = true 128 return builder 129 } 130 131 // 执行者的用户ID列表。 132 // 133 // 示例值:["ou_550cc75233d8b7b9fcbdad65f34433f4", "ou_d1e9d27cf3235b40ca9a67c67ef088b0"] 134 func (builder *CollaboratorBuilder) IdList(idList []string) *CollaboratorBuilder { 135 builder.idList = idList 136 builder.idListFlag = true 137 return builder 138 } 139 140 func (builder *CollaboratorBuilder) Build() *Collaborator { 141 req := &Collaborator{} 142 if builder.idFlag { 143 req.Id = &builder.id 144 145 } 146 if builder.idListFlag { 147 req.IdList = builder.idList 148 } 149 return req 150 } 151 152 type Comment struct { 153 Content *string `json:"content,omitempty"` // 评论内容。;<md-alert>;评论内容和富文本评论内容同时存在时只使用富文本评论内容。;</md-alert> 154 ParentId *string `json:"parent_id,omitempty"` // 评论的父ID,创建评论时若不为空则为某条评论的回复,若为空则不是回复 155 Id *string `json:"id,omitempty"` // 评论ID,由飞书服务器发号 156 CreateMilliTime *string `json:"create_milli_time,omitempty"` // 评论创建的时间戳,单位为毫秒,用于展示,创建时不用填写 157 RichContent *string `json:"rich_content,omitempty"` // 富文本评论内容。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 158 } 159 160 type CommentBuilder struct { 161 content string // 评论内容。;<md-alert>;评论内容和富文本评论内容同时存在时只使用富文本评论内容。;</md-alert> 162 contentFlag bool 163 parentId string // 评论的父ID,创建评论时若不为空则为某条评论的回复,若为空则不是回复 164 parentIdFlag bool 165 id string // 评论ID,由飞书服务器发号 166 idFlag bool 167 createMilliTime string // 评论创建的时间戳,单位为毫秒,用于展示,创建时不用填写 168 createMilliTimeFlag bool 169 richContent string // 富文本评论内容。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 170 richContentFlag bool 171 } 172 173 func NewCommentBuilder() *CommentBuilder { 174 builder := &CommentBuilder{} 175 return builder 176 } 177 178 // 评论内容。;<md-alert>;评论内容和富文本评论内容同时存在时只使用富文本评论内容。;</md-alert> 179 // 180 // 示例值:举杯邀明月,对影成三人 181 func (builder *CommentBuilder) Content(content string) *CommentBuilder { 182 builder.content = content 183 builder.contentFlag = true 184 return builder 185 } 186 187 // 评论的父ID,创建评论时若不为空则为某条评论的回复,若为空则不是回复 188 // 189 // 示例值:6937231762296684564 190 func (builder *CommentBuilder) ParentId(parentId string) *CommentBuilder { 191 builder.parentId = parentId 192 builder.parentIdFlag = true 193 return builder 194 } 195 196 // 评论ID,由飞书服务器发号 197 // 198 // 示例值:6937231762296684564 199 func (builder *CommentBuilder) Id(id string) *CommentBuilder { 200 builder.id = id 201 builder.idFlag = true 202 return builder 203 } 204 205 // 评论创建的时间戳,单位为毫秒,用于展示,创建时不用填写 206 // 207 // 示例值:1657075055135 208 func (builder *CommentBuilder) CreateMilliTime(createMilliTime string) *CommentBuilder { 209 builder.createMilliTime = createMilliTime 210 builder.createMilliTimeFlag = true 211 return builder 212 } 213 214 // 富文本评论内容。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 215 // 216 // 示例值:举杯邀明月,对影成三人<at id=7058204817822318612></at> 217 func (builder *CommentBuilder) RichContent(richContent string) *CommentBuilder { 218 builder.richContent = richContent 219 builder.richContentFlag = true 220 return builder 221 } 222 223 func (builder *CommentBuilder) Build() *Comment { 224 req := &Comment{} 225 if builder.contentFlag { 226 req.Content = &builder.content 227 228 } 229 if builder.parentIdFlag { 230 req.ParentId = &builder.parentId 231 232 } 233 if builder.idFlag { 234 req.Id = &builder.id 235 236 } 237 if builder.createMilliTimeFlag { 238 req.CreateMilliTime = &builder.createMilliTime 239 240 } 241 if builder.richContentFlag { 242 req.RichContent = &builder.richContent 243 244 } 245 return req 246 } 247 248 type Due struct { 249 Time *string `json:"time,omitempty"` // 截止时间的时间戳(单位为秒) 250 Timezone *string `json:"timezone,omitempty"` // 截止时间对应的时区,使用IANA Time Zone Database标准,如Asia/Shanghai 251 IsAllDay *bool `json:"is_all_day,omitempty"` // 标记任务是否为全天任务(全天任务的截止时间为当天 UTC 时间的 0 点) 252 } 253 254 type DueBuilder struct { 255 time string // 截止时间的时间戳(单位为秒) 256 timeFlag bool 257 timezone string // 截止时间对应的时区,使用IANA Time Zone Database标准,如Asia/Shanghai 258 timezoneFlag bool 259 isAllDay bool // 标记任务是否为全天任务(全天任务的截止时间为当天 UTC 时间的 0 点) 260 isAllDayFlag bool 261 } 262 263 func NewDueBuilder() *DueBuilder { 264 builder := &DueBuilder{} 265 return builder 266 } 267 268 // 截止时间的时间戳(单位为秒) 269 // 270 // 示例值:1623124318 271 func (builder *DueBuilder) Time(time string) *DueBuilder { 272 builder.time = time 273 builder.timeFlag = true 274 return builder 275 } 276 277 // 截止时间对应的时区,使用IANA Time Zone Database标准,如Asia/Shanghai 278 // 279 // 示例值:Asia/Shanghai 280 func (builder *DueBuilder) Timezone(timezone string) *DueBuilder { 281 builder.timezone = timezone 282 builder.timezoneFlag = true 283 return builder 284 } 285 286 // 标记任务是否为全天任务(全天任务的截止时间为当天 UTC 时间的 0 点) 287 // 288 // 示例值:false 289 func (builder *DueBuilder) IsAllDay(isAllDay bool) *DueBuilder { 290 builder.isAllDay = isAllDay 291 builder.isAllDayFlag = true 292 return builder 293 } 294 295 func (builder *DueBuilder) Build() *Due { 296 req := &Due{} 297 if builder.timeFlag { 298 req.Time = &builder.time 299 300 } 301 if builder.timezoneFlag { 302 req.Timezone = &builder.timezone 303 304 } 305 if builder.isAllDayFlag { 306 req.IsAllDay = &builder.isAllDay 307 308 } 309 return req 310 } 311 312 type Follower struct { 313 Id *string `json:"id,omitempty"` // 任务关注人 ID 314 IdList []string `json:"id_list,omitempty"` // 要添加的关注人ID列表 315 } 316 317 type FollowerBuilder struct { 318 id string // 任务关注人 ID 319 idFlag bool 320 idList []string // 要添加的关注人ID列表 321 idListFlag bool 322 } 323 324 func NewFollowerBuilder() *FollowerBuilder { 325 builder := &FollowerBuilder{} 326 return builder 327 } 328 329 // 任务关注人 ID 330 // 331 // 示例值:ou_99e1a581b36ecc4862cbfbce473f3123 332 func (builder *FollowerBuilder) Id(id string) *FollowerBuilder { 333 builder.id = id 334 builder.idFlag = true 335 return builder 336 } 337 338 // 要添加的关注人ID列表 339 // 340 // 示例值:[; "ou_550cc75233d8b7b9fcbdad65f34433f4", "ou_d1e9d27cf3235b40ca9a67c67ef088b0";] 341 func (builder *FollowerBuilder) IdList(idList []string) *FollowerBuilder { 342 builder.idList = idList 343 builder.idListFlag = true 344 return builder 345 } 346 347 func (builder *FollowerBuilder) Build() *Follower { 348 req := &Follower{} 349 if builder.idFlag { 350 req.Id = &builder.id 351 352 } 353 if builder.idListFlag { 354 req.IdList = builder.idList 355 } 356 return req 357 } 358 359 type Href struct { 360 Url *string `json:"url,omitempty"` // 具体链接地址 361 Title *string `json:"title,omitempty"` // 链接对应的标题 362 } 363 364 type HrefBuilder struct { 365 url string // 具体链接地址 366 urlFlag bool 367 title string // 链接对应的标题 368 titleFlag bool 369 } 370 371 func NewHrefBuilder() *HrefBuilder { 372 builder := &HrefBuilder{} 373 return builder 374 } 375 376 // 具体链接地址 377 // 378 // 示例值:https://support.feishu.com/internal/foo-bar 379 func (builder *HrefBuilder) Url(url string) *HrefBuilder { 380 builder.url = url 381 builder.urlFlag = true 382 return builder 383 } 384 385 // 链接对应的标题 386 // 387 // 示例值:反馈一个问题,需要协助排查 388 func (builder *HrefBuilder) Title(title string) *HrefBuilder { 389 builder.title = title 390 builder.titleFlag = true 391 return builder 392 } 393 394 func (builder *HrefBuilder) Build() *Href { 395 req := &Href{} 396 if builder.urlFlag { 397 req.Url = &builder.url 398 399 } 400 if builder.titleFlag { 401 req.Title = &builder.title 402 403 } 404 return req 405 } 406 407 type Origin struct { 408 PlatformI18nName *string `json:"platform_i18n_name,omitempty"` // 任务导入来源的名称,用于在任务中心详情页展示。请提供一个字典,多种语言名称映射。支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn 409 Href *Href `json:"href,omitempty"` // 任务关联的来源平台详情页链接 410 } 411 412 type OriginBuilder struct { 413 platformI18nName string // 任务导入来源的名称,用于在任务中心详情页展示。请提供一个字典,多种语言名称映射。支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn 414 platformI18nNameFlag bool 415 href *Href // 任务关联的来源平台详情页链接 416 hrefFlag bool 417 } 418 419 func NewOriginBuilder() *OriginBuilder { 420 builder := &OriginBuilder{} 421 return builder 422 } 423 424 // 任务导入来源的名称,用于在任务中心详情页展示。请提供一个字典,多种语言名称映射。支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn 425 // 426 // 示例值:{\"zh_cn\": \"IT 工作台\", \"en_us\": \"IT Workspace\"} 427 func (builder *OriginBuilder) PlatformI18nName(platformI18nName string) *OriginBuilder { 428 builder.platformI18nName = platformI18nName 429 builder.platformI18nNameFlag = true 430 return builder 431 } 432 433 // 任务关联的来源平台详情页链接 434 // 435 // 示例值: 436 func (builder *OriginBuilder) Href(href *Href) *OriginBuilder { 437 builder.href = href 438 builder.hrefFlag = true 439 return builder 440 } 441 442 func (builder *OriginBuilder) Build() *Origin { 443 req := &Origin{} 444 if builder.platformI18nNameFlag { 445 req.PlatformI18nName = &builder.platformI18nName 446 447 } 448 if builder.hrefFlag { 449 req.Href = builder.href 450 } 451 return req 452 } 453 454 type Reminder struct { 455 Id *string `json:"id,omitempty"` // 提醒时间设置的 ID(在删除时候需要使用这个) 456 RelativeFireMinute *int `json:"relative_fire_minute,omitempty"` // 相对于截止时间的提醒时间(如提前 30 分钟,截止时间后 30 分钟,则为 -30) 任务没有截止时间则为全天任务(截止时间为0) 457 } 458 459 type ReminderBuilder struct { 460 id string // 提醒时间设置的 ID(在删除时候需要使用这个) 461 idFlag bool 462 relativeFireMinute int // 相对于截止时间的提醒时间(如提前 30 分钟,截止时间后 30 分钟,则为 -30) 任务没有截止时间则为全天任务(截止时间为0) 463 relativeFireMinuteFlag bool 464 } 465 466 func NewReminderBuilder() *ReminderBuilder { 467 builder := &ReminderBuilder{} 468 return builder 469 } 470 471 // 提醒时间设置的 ID(在删除时候需要使用这个) 472 // 473 // 示例值:1 474 func (builder *ReminderBuilder) Id(id string) *ReminderBuilder { 475 builder.id = id 476 builder.idFlag = true 477 return builder 478 } 479 480 // 相对于截止时间的提醒时间(如提前 30 分钟,截止时间后 30 分钟,则为 -30) 任务没有截止时间则为全天任务(截止时间为0) 481 // 482 // 示例值:30 483 func (builder *ReminderBuilder) RelativeFireMinute(relativeFireMinute int) *ReminderBuilder { 484 builder.relativeFireMinute = relativeFireMinute 485 builder.relativeFireMinuteFlag = true 486 return builder 487 } 488 489 func (builder *ReminderBuilder) Build() *Reminder { 490 req := &Reminder{} 491 if builder.idFlag { 492 req.Id = &builder.id 493 494 } 495 if builder.relativeFireMinuteFlag { 496 req.RelativeFireMinute = &builder.relativeFireMinute 497 498 } 499 return req 500 } 501 502 type Task struct { 503 Id *string `json:"id,omitempty"` // 任务 ID,由飞书任务服务器发号 504 Summary *string `json:"summary,omitempty"` // 任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。;<md-alert>;任务标题和任务富文本标题同时存在时只使用富文本标题。;</md-alert> 505 Description *string `json:"description,omitempty"` // 任务备注。;<md-alert>;任务备注和任务富文本备注同时存在时只使用富文本备注。;</md-alert> 506 CompleteTime *string `json:"complete_time,omitempty"` // 任务的完成时间戳(单位为秒),如果完成时间为 0,则表示任务尚未完成 507 CreatorId *string `json:"creator_id,omitempty"` // 任务的创建者 ID。在创建任务时无需填充该字段 508 Extra *string `json:"extra,omitempty"` // 接入方可以自定义的附属信息二进制格式,采用 base64 编码,解析方式由接入方自己决定 509 CreateTime *string `json:"create_time,omitempty"` // 任务的创建时间戳(单位为秒) 510 UpdateTime *string `json:"update_time,omitempty"` // 任务的更新时间戳(单位为秒) 511 Due *Due `json:"due,omitempty"` // 任务的截止时间设置 512 Origin *Origin `json:"origin,omitempty"` // 任务关联的第三方平台来源信息 513 CanEdit *bool `json:"can_edit,omitempty"` // 此字段用于控制该任务在飞书任务中心是否可编辑,默认为false,若为true则第三方需考虑是否需要接入事件来接收任务在任务中心的变更信息;(即将废弃) 514 Custom *string `json:"custom,omitempty"` // 此字段用于存储第三方需透传到端上的自定义数据,Json格式。取值举例中custom_complete字段存储「完成」按钮的跳转链接(href)或提示信息(tip),pc、ios、android三端均可自定义,其中tip字段的key为语言类型,value为提示信息,可自行增加或减少语言类型,支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn。href的优先级高于tip,href和tip同时不为空时只跳转不提示。链接和提示信息可自定义,其余的key需按举例中的结构传递 515 Source *int `json:"source,omitempty"` // 任务创建的来源 516 Followers []*Follower `json:"followers,omitempty"` // 任务的关注者 517 Collaborators []*Collaborator `json:"collaborators,omitempty"` // 任务的执行者 518 CollaboratorIds []string `json:"collaborator_ids,omitempty"` // 创建任务时添加的执行者用户id列表 519 FollowerIds []string `json:"follower_ids,omitempty"` // 创建任务时添加的关注者用户id列表 520 RepeatRule *string `json:"repeat_rule,omitempty"` // 重复任务重复规则 521 RichSummary *string `json:"rich_summary,omitempty"` // 富文本任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 522 RichDescription *string `json:"rich_description,omitempty"` // 富文本任务备注。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 523 } 524 525 type TaskBuilder struct { 526 id string // 任务 ID,由飞书任务服务器发号 527 idFlag bool 528 summary string // 任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。;<md-alert>;任务标题和任务富文本标题同时存在时只使用富文本标题。;</md-alert> 529 summaryFlag bool 530 description string // 任务备注。;<md-alert>;任务备注和任务富文本备注同时存在时只使用富文本备注。;</md-alert> 531 descriptionFlag bool 532 completeTime string // 任务的完成时间戳(单位为秒),如果完成时间为 0,则表示任务尚未完成 533 completeTimeFlag bool 534 creatorId string // 任务的创建者 ID。在创建任务时无需填充该字段 535 creatorIdFlag bool 536 extra string // 接入方可以自定义的附属信息二进制格式,采用 base64 编码,解析方式由接入方自己决定 537 extraFlag bool 538 createTime string // 任务的创建时间戳(单位为秒) 539 createTimeFlag bool 540 updateTime string // 任务的更新时间戳(单位为秒) 541 updateTimeFlag bool 542 due *Due // 任务的截止时间设置 543 dueFlag bool 544 origin *Origin // 任务关联的第三方平台来源信息 545 originFlag bool 546 canEdit bool // 此字段用于控制该任务在飞书任务中心是否可编辑,默认为false,若为true则第三方需考虑是否需要接入事件来接收任务在任务中心的变更信息;(即将废弃) 547 canEditFlag bool 548 custom string // 此字段用于存储第三方需透传到端上的自定义数据,Json格式。取值举例中custom_complete字段存储「完成」按钮的跳转链接(href)或提示信息(tip),pc、ios、android三端均可自定义,其中tip字段的key为语言类型,value为提示信息,可自行增加或减少语言类型,支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn。href的优先级高于tip,href和tip同时不为空时只跳转不提示。链接和提示信息可自定义,其余的key需按举例中的结构传递 549 customFlag bool 550 source int // 任务创建的来源 551 sourceFlag bool 552 followers []*Follower // 任务的关注者 553 followersFlag bool 554 collaborators []*Collaborator // 任务的执行者 555 collaboratorsFlag bool 556 collaboratorIds []string // 创建任务时添加的执行者用户id列表 557 collaboratorIdsFlag bool 558 followerIds []string // 创建任务时添加的关注者用户id列表 559 followerIdsFlag bool 560 repeatRule string // 重复任务重复规则 561 repeatRuleFlag bool 562 richSummary string // 富文本任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 563 richSummaryFlag bool 564 richDescription string // 富文本任务备注。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 565 richDescriptionFlag bool 566 } 567 568 func NewTaskBuilder() *TaskBuilder { 569 builder := &TaskBuilder{} 570 return builder 571 } 572 573 // 任务 ID,由飞书任务服务器发号 574 // 575 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 576 func (builder *TaskBuilder) Id(id string) *TaskBuilder { 577 builder.id = id 578 builder.idFlag = true 579 return builder 580 } 581 582 // 任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。;<md-alert>;任务标题和任务富文本标题同时存在时只使用富文本标题。;</md-alert> 583 // 584 // 示例值:每天喝八杯水,保持身心愉悦 585 func (builder *TaskBuilder) Summary(summary string) *TaskBuilder { 586 builder.summary = summary 587 builder.summaryFlag = true 588 return builder 589 } 590 591 // 任务备注。;<md-alert>;任务备注和任务富文本备注同时存在时只使用富文本备注。;</md-alert> 592 // 593 // 示例值:多吃水果,多运动,健康生活,快乐工作。 594 func (builder *TaskBuilder) Description(description string) *TaskBuilder { 595 builder.description = description 596 builder.descriptionFlag = true 597 return builder 598 } 599 600 // 任务的完成时间戳(单位为秒),如果完成时间为 0,则表示任务尚未完成 601 // 602 // 示例值:1623499200 603 func (builder *TaskBuilder) CompleteTime(completeTime string) *TaskBuilder { 604 builder.completeTime = completeTime 605 builder.completeTimeFlag = true 606 return builder 607 } 608 609 // 任务的创建者 ID。在创建任务时无需填充该字段 610 // 611 // 示例值:ou_99e1a581b36ecc4862cbfbce473f346a 612 func (builder *TaskBuilder) CreatorId(creatorId string) *TaskBuilder { 613 builder.creatorId = creatorId 614 builder.creatorIdFlag = true 615 return builder 616 } 617 618 // 接入方可以自定义的附属信息二进制格式,采用 base64 编码,解析方式由接入方自己决定 619 // 620 // 示例值:dGVzdA== 621 func (builder *TaskBuilder) Extra(extra string) *TaskBuilder { 622 builder.extra = extra 623 builder.extraFlag = true 624 return builder 625 } 626 627 // 任务的创建时间戳(单位为秒) 628 // 629 // 示例值:1623392486 630 func (builder *TaskBuilder) CreateTime(createTime string) *TaskBuilder { 631 builder.createTime = createTime 632 builder.createTimeFlag = true 633 return builder 634 } 635 636 // 任务的更新时间戳(单位为秒) 637 // 638 // 示例值:1623392486 639 func (builder *TaskBuilder) UpdateTime(updateTime string) *TaskBuilder { 640 builder.updateTime = updateTime 641 builder.updateTimeFlag = true 642 return builder 643 } 644 645 // 任务的截止时间设置 646 // 647 // 示例值: 648 func (builder *TaskBuilder) Due(due *Due) *TaskBuilder { 649 builder.due = due 650 builder.dueFlag = true 651 return builder 652 } 653 654 // 任务关联的第三方平台来源信息 655 // 656 // 示例值: 657 func (builder *TaskBuilder) Origin(origin *Origin) *TaskBuilder { 658 builder.origin = origin 659 builder.originFlag = true 660 return builder 661 } 662 663 // 此字段用于控制该任务在飞书任务中心是否可编辑,默认为false,若为true则第三方需考虑是否需要接入事件来接收任务在任务中心的变更信息;(即将废弃) 664 // 665 // 示例值:true 666 func (builder *TaskBuilder) CanEdit(canEdit bool) *TaskBuilder { 667 builder.canEdit = canEdit 668 builder.canEditFlag = true 669 return builder 670 } 671 672 // 此字段用于存储第三方需透传到端上的自定义数据,Json格式。取值举例中custom_complete字段存储「完成」按钮的跳转链接(href)或提示信息(tip),pc、ios、android三端均可自定义,其中tip字段的key为语言类型,value为提示信息,可自行增加或减少语言类型,支持的各地区语言名:it_it, th_th, ko_kr, es_es, ja_jp, zh_cn, id_id, zh_hk, pt_br, de_de, fr_fr, zh_tw, ru_ru, en_us, hi_in, vi_vn。href的优先级高于tip,href和tip同时不为空时只跳转不提示。链接和提示信息可自定义,其余的key需按举例中的结构传递 673 // 674 // 示例值:{\"custom_complete\":{\"android\":{\"href\":\"https://www.feishu.cn/\",\"tip\":{\"zh_cn\":\"你好\",\"en_us\":\"hello\"}},\"ios\":{\"href\":\"https://www.feishu.cn/\",\"tip\":{\"zh_cn\":\"你好\",\"en_us\":\"hello\"}},\"pc\":{\"href\":\"https://www.feishu.cn/\",\"tip\":{\"zh_cn\":\"你好\",\"en_us\":\"hello\"}}}} 675 func (builder *TaskBuilder) Custom(custom string) *TaskBuilder { 676 builder.custom = custom 677 builder.customFlag = true 678 return builder 679 } 680 681 // 任务创建的来源 682 // 683 // 示例值: 684 func (builder *TaskBuilder) Source(source int) *TaskBuilder { 685 builder.source = source 686 builder.sourceFlag = true 687 return builder 688 } 689 690 // 任务的关注者 691 // 692 // 示例值:ou_03c21c80caea2c816665f8056dc59027 693 func (builder *TaskBuilder) Followers(followers []*Follower) *TaskBuilder { 694 builder.followers = followers 695 builder.followersFlag = true 696 return builder 697 } 698 699 // 任务的执行者 700 // 701 // 示例值:ou_558d4999baae26e32aa2fd9bb228660b 702 func (builder *TaskBuilder) Collaborators(collaborators []*Collaborator) *TaskBuilder { 703 builder.collaborators = collaborators 704 builder.collaboratorsFlag = true 705 return builder 706 } 707 708 // 创建任务时添加的执行者用户id列表 709 // 710 // 示例值:["ou_1400208f15333e20e11339d39067844b", "ou_84ed6312949945c8ae6168f10829e9e6"] 711 func (builder *TaskBuilder) CollaboratorIds(collaboratorIds []string) *TaskBuilder { 712 builder.collaboratorIds = collaboratorIds 713 builder.collaboratorIdsFlag = true 714 return builder 715 } 716 717 // 创建任务时添加的关注者用户id列表 718 // 719 // 示例值:["ou_1400208f15333e20e11339d39067844b", "ou_84ed6312949945c8ae6168f10829e9e6"] 720 func (builder *TaskBuilder) FollowerIds(followerIds []string) *TaskBuilder { 721 builder.followerIds = followerIds 722 builder.followerIdsFlag = true 723 return builder 724 } 725 726 // 重复任务重复规则 727 // 728 // 示例值:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR 729 func (builder *TaskBuilder) RepeatRule(repeatRule string) *TaskBuilder { 730 builder.repeatRule = repeatRule 731 builder.repeatRuleFlag = true 732 return builder 733 } 734 735 // 富文本任务标题。创建任务时,如果没有标题填充,飞书服务器会将其视为无主题的任务。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 736 // 737 // 示例值:每天喝八杯水,保持身心愉悦\[飞书开放平台\](https://open.feishu.cn/) 738 func (builder *TaskBuilder) RichSummary(richSummary string) *TaskBuilder { 739 builder.richSummary = richSummary 740 builder.richSummaryFlag = true 741 return builder 742 } 743 744 // 富文本任务备注。语法格式参见[Markdown模块](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/task-v1/markdown-module) 745 // 746 // 示例值:多吃水果,多运动,健康生活,快乐工作。\[飞书开放平台](https://open.feishu.cn/) 747 func (builder *TaskBuilder) RichDescription(richDescription string) *TaskBuilder { 748 builder.richDescription = richDescription 749 builder.richDescriptionFlag = true 750 return builder 751 } 752 753 func (builder *TaskBuilder) Build() *Task { 754 req := &Task{} 755 if builder.idFlag { 756 req.Id = &builder.id 757 758 } 759 if builder.summaryFlag { 760 req.Summary = &builder.summary 761 762 } 763 if builder.descriptionFlag { 764 req.Description = &builder.description 765 766 } 767 if builder.completeTimeFlag { 768 req.CompleteTime = &builder.completeTime 769 770 } 771 if builder.creatorIdFlag { 772 req.CreatorId = &builder.creatorId 773 774 } 775 if builder.extraFlag { 776 req.Extra = &builder.extra 777 778 } 779 if builder.createTimeFlag { 780 req.CreateTime = &builder.createTime 781 782 } 783 if builder.updateTimeFlag { 784 req.UpdateTime = &builder.updateTime 785 786 } 787 if builder.dueFlag { 788 req.Due = builder.due 789 } 790 if builder.originFlag { 791 req.Origin = builder.origin 792 } 793 if builder.canEditFlag { 794 req.CanEdit = &builder.canEdit 795 796 } 797 if builder.customFlag { 798 req.Custom = &builder.custom 799 800 } 801 if builder.sourceFlag { 802 req.Source = &builder.source 803 804 } 805 if builder.followersFlag { 806 req.Followers = builder.followers 807 } 808 if builder.collaboratorsFlag { 809 req.Collaborators = builder.collaborators 810 } 811 if builder.collaboratorIdsFlag { 812 req.CollaboratorIds = builder.collaboratorIds 813 } 814 if builder.followerIdsFlag { 815 req.FollowerIds = builder.followerIds 816 } 817 if builder.repeatRuleFlag { 818 req.RepeatRule = &builder.repeatRule 819 820 } 821 if builder.richSummaryFlag { 822 req.RichSummary = &builder.richSummary 823 824 } 825 if builder.richDescriptionFlag { 826 req.RichDescription = &builder.richDescription 827 828 } 829 return req 830 } 831 832 type UserId struct { 833 UserId *string `json:"user_id,omitempty"` // 834 OpenId *string `json:"open_id,omitempty"` // 835 UnionId *string `json:"union_id,omitempty"` // 836 } 837 838 type UserIdBuilder struct { 839 userId string // 840 userIdFlag bool 841 openId string // 842 openIdFlag bool 843 unionId string // 844 unionIdFlag bool 845 } 846 847 func NewUserIdBuilder() *UserIdBuilder { 848 builder := &UserIdBuilder{} 849 return builder 850 } 851 852 // 853 // 854 // 示例值: 855 func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder { 856 builder.userId = userId 857 builder.userIdFlag = true 858 return builder 859 } 860 861 // 862 // 863 // 示例值: 864 func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder { 865 builder.openId = openId 866 builder.openIdFlag = true 867 return builder 868 } 869 870 // 871 // 872 // 示例值: 873 func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder { 874 builder.unionId = unionId 875 builder.unionIdFlag = true 876 return builder 877 } 878 879 func (builder *UserIdBuilder) Build() *UserId { 880 req := &UserId{} 881 if builder.userIdFlag { 882 req.UserId = &builder.userId 883 884 } 885 if builder.openIdFlag { 886 req.OpenId = &builder.openId 887 888 } 889 if builder.unionIdFlag { 890 req.UnionId = &builder.unionId 891 892 } 893 return req 894 } 895 896 type UserIdList struct { 897 UserIdList []*UserId `json:"user_id_list,omitempty"` // 用户 ID 列表 898 } 899 900 type UserIdListBuilder struct { 901 userIdList []*UserId // 用户 ID 列表 902 userIdListFlag bool 903 } 904 905 func NewUserIdListBuilder() *UserIdListBuilder { 906 builder := &UserIdListBuilder{} 907 return builder 908 } 909 910 // 用户 ID 列表 911 // 912 // 示例值: 913 func (builder *UserIdListBuilder) UserIdList(userIdList []*UserId) *UserIdListBuilder { 914 builder.userIdList = userIdList 915 builder.userIdListFlag = true 916 return builder 917 } 918 919 func (builder *UserIdListBuilder) Build() *UserIdList { 920 req := &UserIdList{} 921 if builder.userIdListFlag { 922 req.UserIdList = builder.userIdList 923 } 924 return req 925 } 926 927 type BatchDeleteCollaboratorTaskReqBuilder struct { 928 apiReq *larkcore.ApiReq 929 collaborator *Collaborator 930 } 931 932 func NewBatchDeleteCollaboratorTaskReqBuilder() *BatchDeleteCollaboratorTaskReqBuilder { 933 builder := &BatchDeleteCollaboratorTaskReqBuilder{} 934 builder.apiReq = &larkcore.ApiReq{ 935 PathParams: larkcore.PathParams{}, 936 QueryParams: larkcore.QueryParams{}, 937 } 938 return builder 939 } 940 941 // 任务ID 942 // 943 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 944 func (builder *BatchDeleteCollaboratorTaskReqBuilder) TaskId(taskId string) *BatchDeleteCollaboratorTaskReqBuilder { 945 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 946 return builder 947 } 948 949 // 此次调用中使用的用户ID的类型 950 // 951 // 示例值: 952 func (builder *BatchDeleteCollaboratorTaskReqBuilder) UserIdType(userIdType string) *BatchDeleteCollaboratorTaskReqBuilder { 953 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 954 return builder 955 } 956 957 // 该接口用于批量删除执行者 958 func (builder *BatchDeleteCollaboratorTaskReqBuilder) Collaborator(collaborator *Collaborator) *BatchDeleteCollaboratorTaskReqBuilder { 959 builder.collaborator = collaborator 960 return builder 961 } 962 963 func (builder *BatchDeleteCollaboratorTaskReqBuilder) Build() *BatchDeleteCollaboratorTaskReq { 964 req := &BatchDeleteCollaboratorTaskReq{} 965 req.apiReq = &larkcore.ApiReq{} 966 req.apiReq.PathParams = builder.apiReq.PathParams 967 req.apiReq.QueryParams = builder.apiReq.QueryParams 968 req.apiReq.Body = builder.collaborator 969 return req 970 } 971 972 type BatchDeleteCollaboratorTaskReq struct { 973 apiReq *larkcore.ApiReq 974 Collaborator *Collaborator `body:""` 975 } 976 977 type BatchDeleteCollaboratorTaskRespData struct { 978 Collaborators []string `json:"collaborators,omitempty"` // 实际删除的执行人用户ID列表 979 } 980 981 type BatchDeleteCollaboratorTaskResp struct { 982 *larkcore.ApiResp `json:"-"` 983 larkcore.CodeError 984 Data *BatchDeleteCollaboratorTaskRespData `json:"data"` // 业务数据 985 } 986 987 func (resp *BatchDeleteCollaboratorTaskResp) Success() bool { 988 return resp.Code == 0 989 } 990 991 type BatchDeleteFollowerTaskReqBuilder struct { 992 apiReq *larkcore.ApiReq 993 follower *Follower 994 } 995 996 func NewBatchDeleteFollowerTaskReqBuilder() *BatchDeleteFollowerTaskReqBuilder { 997 builder := &BatchDeleteFollowerTaskReqBuilder{} 998 builder.apiReq = &larkcore.ApiReq{ 999 PathParams: larkcore.PathParams{}, 1000 QueryParams: larkcore.QueryParams{}, 1001 } 1002 return builder 1003 } 1004 1005 // 任务ID 1006 // 1007 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1008 func (builder *BatchDeleteFollowerTaskReqBuilder) TaskId(taskId string) *BatchDeleteFollowerTaskReqBuilder { 1009 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1010 return builder 1011 } 1012 1013 // 此次调用中使用的用户ID的类型 1014 // 1015 // 示例值: 1016 func (builder *BatchDeleteFollowerTaskReqBuilder) UserIdType(userIdType string) *BatchDeleteFollowerTaskReqBuilder { 1017 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1018 return builder 1019 } 1020 1021 // 该接口用于批量删除关注人 1022 func (builder *BatchDeleteFollowerTaskReqBuilder) Follower(follower *Follower) *BatchDeleteFollowerTaskReqBuilder { 1023 builder.follower = follower 1024 return builder 1025 } 1026 1027 func (builder *BatchDeleteFollowerTaskReqBuilder) Build() *BatchDeleteFollowerTaskReq { 1028 req := &BatchDeleteFollowerTaskReq{} 1029 req.apiReq = &larkcore.ApiReq{} 1030 req.apiReq.PathParams = builder.apiReq.PathParams 1031 req.apiReq.QueryParams = builder.apiReq.QueryParams 1032 req.apiReq.Body = builder.follower 1033 return req 1034 } 1035 1036 type BatchDeleteFollowerTaskReq struct { 1037 apiReq *larkcore.ApiReq 1038 Follower *Follower `body:""` 1039 } 1040 1041 type BatchDeleteFollowerTaskRespData struct { 1042 Followers []string `json:"followers,omitempty"` // 实际删除的关注人用户ID列表 1043 } 1044 1045 type BatchDeleteFollowerTaskResp struct { 1046 *larkcore.ApiResp `json:"-"` 1047 larkcore.CodeError 1048 Data *BatchDeleteFollowerTaskRespData `json:"data"` // 业务数据 1049 } 1050 1051 func (resp *BatchDeleteFollowerTaskResp) Success() bool { 1052 return resp.Code == 0 1053 } 1054 1055 type CompleteTaskReqBuilder struct { 1056 apiReq *larkcore.ApiReq 1057 } 1058 1059 func NewCompleteTaskReqBuilder() *CompleteTaskReqBuilder { 1060 builder := &CompleteTaskReqBuilder{} 1061 builder.apiReq = &larkcore.ApiReq{ 1062 PathParams: larkcore.PathParams{}, 1063 QueryParams: larkcore.QueryParams{}, 1064 } 1065 return builder 1066 } 1067 1068 // 任务 ID 1069 // 1070 // 示例值:bb54ab99-d360-434f-bcaa-a4cc4c05840e 1071 func (builder *CompleteTaskReqBuilder) TaskId(taskId string) *CompleteTaskReqBuilder { 1072 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1073 return builder 1074 } 1075 1076 func (builder *CompleteTaskReqBuilder) Build() *CompleteTaskReq { 1077 req := &CompleteTaskReq{} 1078 req.apiReq = &larkcore.ApiReq{} 1079 req.apiReq.PathParams = builder.apiReq.PathParams 1080 return req 1081 } 1082 1083 type CompleteTaskReq struct { 1084 apiReq *larkcore.ApiReq 1085 } 1086 1087 type CompleteTaskResp struct { 1088 *larkcore.ApiResp `json:"-"` 1089 larkcore.CodeError 1090 } 1091 1092 func (resp *CompleteTaskResp) Success() bool { 1093 return resp.Code == 0 1094 } 1095 1096 type CreateTaskReqBuilder struct { 1097 apiReq *larkcore.ApiReq 1098 task *Task 1099 } 1100 1101 func NewCreateTaskReqBuilder() *CreateTaskReqBuilder { 1102 builder := &CreateTaskReqBuilder{} 1103 builder.apiReq = &larkcore.ApiReq{ 1104 PathParams: larkcore.PathParams{}, 1105 QueryParams: larkcore.QueryParams{}, 1106 } 1107 return builder 1108 } 1109 1110 // 此次调用中使用的用户ID的类型 1111 // 1112 // 示例值: 1113 func (builder *CreateTaskReqBuilder) UserIdType(userIdType string) *CreateTaskReqBuilder { 1114 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1115 return builder 1116 } 1117 1118 // 该接口可以创建一个任务(基本信息),如果需要绑定协作者等需要调用别的资源管理接口。其中查询字段 user_id_type 是用于控制返回体中 creator_id 的类型,不传时默认返回 open_id。当使用tenant_access_token 调用接口时,如果user_id_type为user_id,则不会返回creator_id。 1119 func (builder *CreateTaskReqBuilder) Task(task *Task) *CreateTaskReqBuilder { 1120 builder.task = task 1121 return builder 1122 } 1123 1124 func (builder *CreateTaskReqBuilder) Build() *CreateTaskReq { 1125 req := &CreateTaskReq{} 1126 req.apiReq = &larkcore.ApiReq{} 1127 req.apiReq.QueryParams = builder.apiReq.QueryParams 1128 req.apiReq.Body = builder.task 1129 return req 1130 } 1131 1132 type CreateTaskReq struct { 1133 apiReq *larkcore.ApiReq 1134 Task *Task `body:""` 1135 } 1136 1137 type CreateTaskRespData struct { 1138 Task *Task `json:"task,omitempty"` // 返回创建好的任务 1139 } 1140 1141 type CreateTaskResp struct { 1142 *larkcore.ApiResp `json:"-"` 1143 larkcore.CodeError 1144 Data *CreateTaskRespData `json:"data"` // 业务数据 1145 } 1146 1147 func (resp *CreateTaskResp) Success() bool { 1148 return resp.Code == 0 1149 } 1150 1151 type DeleteTaskReqBuilder struct { 1152 apiReq *larkcore.ApiReq 1153 } 1154 1155 func NewDeleteTaskReqBuilder() *DeleteTaskReqBuilder { 1156 builder := &DeleteTaskReqBuilder{} 1157 builder.apiReq = &larkcore.ApiReq{ 1158 PathParams: larkcore.PathParams{}, 1159 QueryParams: larkcore.QueryParams{}, 1160 } 1161 return builder 1162 } 1163 1164 // 任务 ID 1165 // 1166 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1167 func (builder *DeleteTaskReqBuilder) TaskId(taskId string) *DeleteTaskReqBuilder { 1168 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1169 return builder 1170 } 1171 1172 func (builder *DeleteTaskReqBuilder) Build() *DeleteTaskReq { 1173 req := &DeleteTaskReq{} 1174 req.apiReq = &larkcore.ApiReq{} 1175 req.apiReq.PathParams = builder.apiReq.PathParams 1176 return req 1177 } 1178 1179 type DeleteTaskReq struct { 1180 apiReq *larkcore.ApiReq 1181 } 1182 1183 type DeleteTaskResp struct { 1184 *larkcore.ApiResp `json:"-"` 1185 larkcore.CodeError 1186 } 1187 1188 func (resp *DeleteTaskResp) Success() bool { 1189 return resp.Code == 0 1190 } 1191 1192 type GetTaskReqBuilder struct { 1193 apiReq *larkcore.ApiReq 1194 } 1195 1196 func NewGetTaskReqBuilder() *GetTaskReqBuilder { 1197 builder := &GetTaskReqBuilder{} 1198 builder.apiReq = &larkcore.ApiReq{ 1199 PathParams: larkcore.PathParams{}, 1200 QueryParams: larkcore.QueryParams{}, 1201 } 1202 return builder 1203 } 1204 1205 // 任务 ID 1206 // 1207 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1208 func (builder *GetTaskReqBuilder) TaskId(taskId string) *GetTaskReqBuilder { 1209 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1210 return builder 1211 } 1212 1213 // 此次调用中使用的用户ID的类型 1214 // 1215 // 示例值: 1216 func (builder *GetTaskReqBuilder) UserIdType(userIdType string) *GetTaskReqBuilder { 1217 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1218 return builder 1219 } 1220 1221 func (builder *GetTaskReqBuilder) Build() *GetTaskReq { 1222 req := &GetTaskReq{} 1223 req.apiReq = &larkcore.ApiReq{} 1224 req.apiReq.PathParams = builder.apiReq.PathParams 1225 req.apiReq.QueryParams = builder.apiReq.QueryParams 1226 return req 1227 } 1228 1229 type GetTaskReq struct { 1230 apiReq *larkcore.ApiReq 1231 } 1232 1233 type GetTaskRespData struct { 1234 Task *Task `json:"task,omitempty"` // 返回任务资源详情 1235 } 1236 1237 type GetTaskResp struct { 1238 *larkcore.ApiResp `json:"-"` 1239 larkcore.CodeError 1240 Data *GetTaskRespData `json:"data"` // 业务数据 1241 } 1242 1243 func (resp *GetTaskResp) Success() bool { 1244 return resp.Code == 0 1245 } 1246 1247 type ListTaskReqBuilder struct { 1248 apiReq *larkcore.ApiReq 1249 limit int // 最大返回多少记录,当使用迭代器访问时才有效 1250 } 1251 1252 func NewListTaskReqBuilder() *ListTaskReqBuilder { 1253 builder := &ListTaskReqBuilder{} 1254 builder.apiReq = &larkcore.ApiReq{ 1255 PathParams: larkcore.PathParams{}, 1256 QueryParams: larkcore.QueryParams{}, 1257 } 1258 return builder 1259 } 1260 1261 // 最大返回多少记录,当使用迭代器访问时才有效 1262 func (builder *ListTaskReqBuilder) Limit(limit int) *ListTaskReqBuilder { 1263 builder.limit = limit 1264 return builder 1265 } 1266 1267 // 分页大小 1268 // 1269 // 示例值:10 1270 func (builder *ListTaskReqBuilder) PageSize(pageSize int) *ListTaskReqBuilder { 1271 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 1272 return builder 1273 } 1274 1275 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 1276 // 1277 // 示例值:MTYzMTg3ODUxNQ== 1278 func (builder *ListTaskReqBuilder) PageToken(pageToken string) *ListTaskReqBuilder { 1279 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 1280 return builder 1281 } 1282 1283 // 范围查询任务时,查询的起始时间。不填时默认起始时间为第一个任务的创建时间。 1284 // 1285 // 示例值:1652323331 1286 func (builder *ListTaskReqBuilder) StartCreateTime(startCreateTime string) *ListTaskReqBuilder { 1287 builder.apiReq.QueryParams.Set("start_create_time", fmt.Sprint(startCreateTime)) 1288 return builder 1289 } 1290 1291 // 范围查询任务时,查询的结束时间。不填时默认结束时间为最后一个任务的创建时间。 1292 // 1293 // 示例值:1652323335 1294 func (builder *ListTaskReqBuilder) EndCreateTime(endCreateTime string) *ListTaskReqBuilder { 1295 builder.apiReq.QueryParams.Set("end_create_time", fmt.Sprint(endCreateTime)) 1296 return builder 1297 } 1298 1299 // 可用于查询时过滤任务完成状态。true表示只返回已完成的任务,false表示只返回未完成的任务。不填时表示同时返回两种完成状态的任务。 1300 // 1301 // 示例值:false 1302 func (builder *ListTaskReqBuilder) TaskCompleted(taskCompleted bool) *ListTaskReqBuilder { 1303 builder.apiReq.QueryParams.Set("task_completed", fmt.Sprint(taskCompleted)) 1304 return builder 1305 } 1306 1307 // 此次调用中使用的用户ID的类型 1308 // 1309 // 示例值: 1310 func (builder *ListTaskReqBuilder) UserIdType(userIdType string) *ListTaskReqBuilder { 1311 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1312 return builder 1313 } 1314 1315 func (builder *ListTaskReqBuilder) Build() *ListTaskReq { 1316 req := &ListTaskReq{} 1317 req.apiReq = &larkcore.ApiReq{} 1318 req.Limit = builder.limit 1319 req.apiReq.QueryParams = builder.apiReq.QueryParams 1320 return req 1321 } 1322 1323 type ListTaskReq struct { 1324 apiReq *larkcore.ApiReq 1325 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 1326 1327 } 1328 1329 type ListTaskRespData struct { 1330 Items []*Task `json:"items,omitempty"` // 任务列表 1331 PageToken *string `json:"page_token,omitempty"` // 1332 HasMore *bool `json:"has_more,omitempty"` // 1333 } 1334 1335 type ListTaskResp struct { 1336 *larkcore.ApiResp `json:"-"` 1337 larkcore.CodeError 1338 Data *ListTaskRespData `json:"data"` // 业务数据 1339 } 1340 1341 func (resp *ListTaskResp) Success() bool { 1342 return resp.Code == 0 1343 } 1344 1345 type PatchTaskReqBodyBuilder struct { 1346 task *Task // 被更新的任务实体基础信息 1347 taskFlag bool 1348 updateFields []string // 指定需要更新的字段(目前可选更新的字段为:summary, description, due, extra),否则服务端将不知道更新哪些字段 1349 updateFieldsFlag bool 1350 } 1351 1352 func NewPatchTaskReqBodyBuilder() *PatchTaskReqBodyBuilder { 1353 builder := &PatchTaskReqBodyBuilder{} 1354 return builder 1355 } 1356 1357 // 被更新的任务实体基础信息 1358 // 1359 //示例值: 1360 func (builder *PatchTaskReqBodyBuilder) Task(task *Task) *PatchTaskReqBodyBuilder { 1361 builder.task = task 1362 builder.taskFlag = true 1363 return builder 1364 } 1365 1366 // 指定需要更新的字段(目前可选更新的字段为:summary, description, due, extra),否则服务端将不知道更新哪些字段 1367 // 1368 //示例值:["summary"] 1369 func (builder *PatchTaskReqBodyBuilder) UpdateFields(updateFields []string) *PatchTaskReqBodyBuilder { 1370 builder.updateFields = updateFields 1371 builder.updateFieldsFlag = true 1372 return builder 1373 } 1374 1375 func (builder *PatchTaskReqBodyBuilder) Build() *PatchTaskReqBody { 1376 req := &PatchTaskReqBody{} 1377 if builder.taskFlag { 1378 req.Task = builder.task 1379 } 1380 if builder.updateFieldsFlag { 1381 req.UpdateFields = builder.updateFields 1382 } 1383 return req 1384 } 1385 1386 type PatchTaskPathReqBodyBuilder struct { 1387 task *Task // 被更新的任务实体基础信息 1388 taskFlag bool 1389 updateFields []string // 指定需要更新的字段(目前可选更新的字段为:summary, description, due, extra),否则服务端将不知道更新哪些字段 1390 updateFieldsFlag bool 1391 } 1392 1393 func NewPatchTaskPathReqBodyBuilder() *PatchTaskPathReqBodyBuilder { 1394 builder := &PatchTaskPathReqBodyBuilder{} 1395 return builder 1396 } 1397 1398 // 被更新的任务实体基础信息 1399 // 1400 // 示例值: 1401 func (builder *PatchTaskPathReqBodyBuilder) Task(task *Task) *PatchTaskPathReqBodyBuilder { 1402 builder.task = task 1403 builder.taskFlag = true 1404 return builder 1405 } 1406 1407 // 指定需要更新的字段(目前可选更新的字段为:summary, description, due, extra),否则服务端将不知道更新哪些字段 1408 // 1409 // 示例值:["summary"] 1410 func (builder *PatchTaskPathReqBodyBuilder) UpdateFields(updateFields []string) *PatchTaskPathReqBodyBuilder { 1411 builder.updateFields = updateFields 1412 builder.updateFieldsFlag = true 1413 return builder 1414 } 1415 1416 func (builder *PatchTaskPathReqBodyBuilder) Build() (*PatchTaskReqBody, error) { 1417 req := &PatchTaskReqBody{} 1418 if builder.taskFlag { 1419 req.Task = builder.task 1420 } 1421 if builder.updateFieldsFlag { 1422 req.UpdateFields = builder.updateFields 1423 } 1424 return req, nil 1425 } 1426 1427 type PatchTaskReqBuilder struct { 1428 apiReq *larkcore.ApiReq 1429 body *PatchTaskReqBody 1430 } 1431 1432 func NewPatchTaskReqBuilder() *PatchTaskReqBuilder { 1433 builder := &PatchTaskReqBuilder{} 1434 builder.apiReq = &larkcore.ApiReq{ 1435 PathParams: larkcore.PathParams{}, 1436 QueryParams: larkcore.QueryParams{}, 1437 } 1438 return builder 1439 } 1440 1441 // 任务 ID 1442 // 1443 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1444 func (builder *PatchTaskReqBuilder) TaskId(taskId string) *PatchTaskReqBuilder { 1445 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1446 return builder 1447 } 1448 1449 // 此次调用中使用的用户ID的类型 1450 // 1451 // 示例值: 1452 func (builder *PatchTaskReqBuilder) UserIdType(userIdType string) *PatchTaskReqBuilder { 1453 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1454 return builder 1455 } 1456 1457 // 该接口用于修改任务的标题、描述、时间、来源等相关信息 1458 func (builder *PatchTaskReqBuilder) Body(body *PatchTaskReqBody) *PatchTaskReqBuilder { 1459 builder.body = body 1460 return builder 1461 } 1462 1463 func (builder *PatchTaskReqBuilder) Build() *PatchTaskReq { 1464 req := &PatchTaskReq{} 1465 req.apiReq = &larkcore.ApiReq{} 1466 req.apiReq.PathParams = builder.apiReq.PathParams 1467 req.apiReq.QueryParams = builder.apiReq.QueryParams 1468 req.apiReq.Body = builder.body 1469 return req 1470 } 1471 1472 type PatchTaskReqBody struct { 1473 Task *Task `json:"task,omitempty"` // 被更新的任务实体基础信息 1474 UpdateFields []string `json:"update_fields,omitempty"` // 指定需要更新的字段(目前可选更新的字段为:summary, description, due, extra),否则服务端将不知道更新哪些字段 1475 } 1476 1477 type PatchTaskReq struct { 1478 apiReq *larkcore.ApiReq 1479 Body *PatchTaskReqBody `body:""` 1480 } 1481 1482 type PatchTaskRespData struct { 1483 Task *Task `json:"task,omitempty"` // 返回修改后的任务详情 1484 } 1485 1486 type PatchTaskResp struct { 1487 *larkcore.ApiResp `json:"-"` 1488 larkcore.CodeError 1489 Data *PatchTaskRespData `json:"data"` // 业务数据 1490 } 1491 1492 func (resp *PatchTaskResp) Success() bool { 1493 return resp.Code == 0 1494 } 1495 1496 type UncompleteTaskReqBuilder struct { 1497 apiReq *larkcore.ApiReq 1498 } 1499 1500 func NewUncompleteTaskReqBuilder() *UncompleteTaskReqBuilder { 1501 builder := &UncompleteTaskReqBuilder{} 1502 builder.apiReq = &larkcore.ApiReq{ 1503 PathParams: larkcore.PathParams{}, 1504 QueryParams: larkcore.QueryParams{}, 1505 } 1506 return builder 1507 } 1508 1509 // 任务 ID 1510 // 1511 // 示例值:bb54ab99-d360-434f-bcaa-a4cc4c05840e 1512 func (builder *UncompleteTaskReqBuilder) TaskId(taskId string) *UncompleteTaskReqBuilder { 1513 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1514 return builder 1515 } 1516 1517 func (builder *UncompleteTaskReqBuilder) Build() *UncompleteTaskReq { 1518 req := &UncompleteTaskReq{} 1519 req.apiReq = &larkcore.ApiReq{} 1520 req.apiReq.PathParams = builder.apiReq.PathParams 1521 return req 1522 } 1523 1524 type UncompleteTaskReq struct { 1525 apiReq *larkcore.ApiReq 1526 } 1527 1528 type UncompleteTaskResp struct { 1529 *larkcore.ApiResp `json:"-"` 1530 larkcore.CodeError 1531 } 1532 1533 func (resp *UncompleteTaskResp) Success() bool { 1534 return resp.Code == 0 1535 } 1536 1537 type CreateTaskCollaboratorReqBuilder struct { 1538 apiReq *larkcore.ApiReq 1539 collaborator *Collaborator 1540 } 1541 1542 func NewCreateTaskCollaboratorReqBuilder() *CreateTaskCollaboratorReqBuilder { 1543 builder := &CreateTaskCollaboratorReqBuilder{} 1544 builder.apiReq = &larkcore.ApiReq{ 1545 PathParams: larkcore.PathParams{}, 1546 QueryParams: larkcore.QueryParams{}, 1547 } 1548 return builder 1549 } 1550 1551 // 任务 ID 1552 // 1553 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1554 func (builder *CreateTaskCollaboratorReqBuilder) TaskId(taskId string) *CreateTaskCollaboratorReqBuilder { 1555 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1556 return builder 1557 } 1558 1559 // 此次调用中使用的用户ID的类型 1560 // 1561 // 示例值: 1562 func (builder *CreateTaskCollaboratorReqBuilder) UserIdType(userIdType string) *CreateTaskCollaboratorReqBuilder { 1563 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1564 return builder 1565 } 1566 1567 // 该接口用于新增任务执行者,一次性可以添加多个执行者。新增的执行者必须是表示是用户的ID。 1568 func (builder *CreateTaskCollaboratorReqBuilder) Collaborator(collaborator *Collaborator) *CreateTaskCollaboratorReqBuilder { 1569 builder.collaborator = collaborator 1570 return builder 1571 } 1572 1573 func (builder *CreateTaskCollaboratorReqBuilder) Build() *CreateTaskCollaboratorReq { 1574 req := &CreateTaskCollaboratorReq{} 1575 req.apiReq = &larkcore.ApiReq{} 1576 req.apiReq.PathParams = builder.apiReq.PathParams 1577 req.apiReq.QueryParams = builder.apiReq.QueryParams 1578 req.apiReq.Body = builder.collaborator 1579 return req 1580 } 1581 1582 type CreateTaskCollaboratorReq struct { 1583 apiReq *larkcore.ApiReq 1584 Collaborator *Collaborator `body:""` 1585 } 1586 1587 type CreateTaskCollaboratorRespData struct { 1588 Collaborator *Collaborator `json:"collaborator,omitempty"` // 返回创建成功后的任务执行者列表 1589 } 1590 1591 type CreateTaskCollaboratorResp struct { 1592 *larkcore.ApiResp `json:"-"` 1593 larkcore.CodeError 1594 Data *CreateTaskCollaboratorRespData `json:"data"` // 业务数据 1595 } 1596 1597 func (resp *CreateTaskCollaboratorResp) Success() bool { 1598 return resp.Code == 0 1599 } 1600 1601 type DeleteTaskCollaboratorReqBuilder struct { 1602 apiReq *larkcore.ApiReq 1603 } 1604 1605 func NewDeleteTaskCollaboratorReqBuilder() *DeleteTaskCollaboratorReqBuilder { 1606 builder := &DeleteTaskCollaboratorReqBuilder{} 1607 builder.apiReq = &larkcore.ApiReq{ 1608 PathParams: larkcore.PathParams{}, 1609 QueryParams: larkcore.QueryParams{}, 1610 } 1611 return builder 1612 } 1613 1614 // 任务 ID 1615 // 1616 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1617 func (builder *DeleteTaskCollaboratorReqBuilder) TaskId(taskId string) *DeleteTaskCollaboratorReqBuilder { 1618 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1619 return builder 1620 } 1621 1622 // 任务执行者 ID(Open ID或User ID,由user_id_type指定) 1623 // 1624 // 示例值:ou_99e1a581b36ecc4862cbfbce123f346a 1625 func (builder *DeleteTaskCollaboratorReqBuilder) CollaboratorId(collaboratorId string) *DeleteTaskCollaboratorReqBuilder { 1626 builder.apiReq.PathParams.Set("collaborator_id", fmt.Sprint(collaboratorId)) 1627 return builder 1628 } 1629 1630 // 此次调用中使用的用户ID的类型 1631 // 1632 // 示例值: 1633 func (builder *DeleteTaskCollaboratorReqBuilder) UserIdType(userIdType string) *DeleteTaskCollaboratorReqBuilder { 1634 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1635 return builder 1636 } 1637 1638 func (builder *DeleteTaskCollaboratorReqBuilder) Build() *DeleteTaskCollaboratorReq { 1639 req := &DeleteTaskCollaboratorReq{} 1640 req.apiReq = &larkcore.ApiReq{} 1641 req.apiReq.PathParams = builder.apiReq.PathParams 1642 req.apiReq.QueryParams = builder.apiReq.QueryParams 1643 return req 1644 } 1645 1646 type DeleteTaskCollaboratorReq struct { 1647 apiReq *larkcore.ApiReq 1648 } 1649 1650 type DeleteTaskCollaboratorResp struct { 1651 *larkcore.ApiResp `json:"-"` 1652 larkcore.CodeError 1653 } 1654 1655 func (resp *DeleteTaskCollaboratorResp) Success() bool { 1656 return resp.Code == 0 1657 } 1658 1659 type ListTaskCollaboratorReqBuilder struct { 1660 apiReq *larkcore.ApiReq 1661 limit int // 最大返回多少记录,当使用迭代器访问时才有效 1662 } 1663 1664 func NewListTaskCollaboratorReqBuilder() *ListTaskCollaboratorReqBuilder { 1665 builder := &ListTaskCollaboratorReqBuilder{} 1666 builder.apiReq = &larkcore.ApiReq{ 1667 PathParams: larkcore.PathParams{}, 1668 QueryParams: larkcore.QueryParams{}, 1669 } 1670 return builder 1671 } 1672 1673 // 最大返回多少记录,当使用迭代器访问时才有效 1674 func (builder *ListTaskCollaboratorReqBuilder) Limit(limit int) *ListTaskCollaboratorReqBuilder { 1675 builder.limit = limit 1676 return builder 1677 } 1678 1679 // 任务 ID 1680 // 1681 // 示例值:0d38e26e-190a-49e9-93a2-35067763ed1f 1682 func (builder *ListTaskCollaboratorReqBuilder) TaskId(taskId string) *ListTaskCollaboratorReqBuilder { 1683 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1684 return builder 1685 } 1686 1687 // 分页大小 1688 // 1689 // 示例值:50 1690 func (builder *ListTaskCollaboratorReqBuilder) PageSize(pageSize int) *ListTaskCollaboratorReqBuilder { 1691 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 1692 return builder 1693 } 1694 1695 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 1696 // 1697 // 示例值:「上次返回的page_token」 1698 func (builder *ListTaskCollaboratorReqBuilder) PageToken(pageToken string) *ListTaskCollaboratorReqBuilder { 1699 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 1700 return builder 1701 } 1702 1703 // 此次调用中使用的用户ID的类型 1704 // 1705 // 示例值: 1706 func (builder *ListTaskCollaboratorReqBuilder) UserIdType(userIdType string) *ListTaskCollaboratorReqBuilder { 1707 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1708 return builder 1709 } 1710 1711 func (builder *ListTaskCollaboratorReqBuilder) Build() *ListTaskCollaboratorReq { 1712 req := &ListTaskCollaboratorReq{} 1713 req.apiReq = &larkcore.ApiReq{} 1714 req.Limit = builder.limit 1715 req.apiReq.PathParams = builder.apiReq.PathParams 1716 req.apiReq.QueryParams = builder.apiReq.QueryParams 1717 return req 1718 } 1719 1720 type ListTaskCollaboratorReq struct { 1721 apiReq *larkcore.ApiReq 1722 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 1723 1724 } 1725 1726 type ListTaskCollaboratorRespData struct { 1727 Items []*Collaborator `json:"items,omitempty"` // 返回的执行者ID列表 1728 PageToken *string `json:"page_token,omitempty"` // 分页标记,分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 1729 HasMore *bool `json:"has_more,omitempty"` // 是否还有更多数据 1730 } 1731 1732 type ListTaskCollaboratorResp struct { 1733 *larkcore.ApiResp `json:"-"` 1734 larkcore.CodeError 1735 Data *ListTaskCollaboratorRespData `json:"data"` // 业务数据 1736 } 1737 1738 func (resp *ListTaskCollaboratorResp) Success() bool { 1739 return resp.Code == 0 1740 } 1741 1742 type CreateTaskCommentReqBuilder struct { 1743 apiReq *larkcore.ApiReq 1744 comment *Comment 1745 } 1746 1747 func NewCreateTaskCommentReqBuilder() *CreateTaskCommentReqBuilder { 1748 builder := &CreateTaskCommentReqBuilder{} 1749 builder.apiReq = &larkcore.ApiReq{ 1750 PathParams: larkcore.PathParams{}, 1751 QueryParams: larkcore.QueryParams{}, 1752 } 1753 return builder 1754 } 1755 1756 // 任务 ID 1757 // 1758 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1759 func (builder *CreateTaskCommentReqBuilder) TaskId(taskId string) *CreateTaskCommentReqBuilder { 1760 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1761 return builder 1762 } 1763 1764 // 该接口用于创建和回复任务的评论。当parent_id字段为0时,为创建评论;当parent_id不为0时,为回复某条评论 1765 func (builder *CreateTaskCommentReqBuilder) Comment(comment *Comment) *CreateTaskCommentReqBuilder { 1766 builder.comment = comment 1767 return builder 1768 } 1769 1770 func (builder *CreateTaskCommentReqBuilder) Build() *CreateTaskCommentReq { 1771 req := &CreateTaskCommentReq{} 1772 req.apiReq = &larkcore.ApiReq{} 1773 req.apiReq.PathParams = builder.apiReq.PathParams 1774 req.apiReq.Body = builder.comment 1775 return req 1776 } 1777 1778 type CreateTaskCommentReq struct { 1779 apiReq *larkcore.ApiReq 1780 Comment *Comment `body:""` 1781 } 1782 1783 type CreateTaskCommentRespData struct { 1784 Comment *Comment `json:"comment,omitempty"` // 返回创建好的任务评论 1785 } 1786 1787 type CreateTaskCommentResp struct { 1788 *larkcore.ApiResp `json:"-"` 1789 larkcore.CodeError 1790 Data *CreateTaskCommentRespData `json:"data"` // 业务数据 1791 } 1792 1793 func (resp *CreateTaskCommentResp) Success() bool { 1794 return resp.Code == 0 1795 } 1796 1797 type DeleteTaskCommentReqBuilder struct { 1798 apiReq *larkcore.ApiReq 1799 } 1800 1801 func NewDeleteTaskCommentReqBuilder() *DeleteTaskCommentReqBuilder { 1802 builder := &DeleteTaskCommentReqBuilder{} 1803 builder.apiReq = &larkcore.ApiReq{ 1804 PathParams: larkcore.PathParams{}, 1805 QueryParams: larkcore.QueryParams{}, 1806 } 1807 return builder 1808 } 1809 1810 // 任务ID 1811 // 1812 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1813 func (builder *DeleteTaskCommentReqBuilder) TaskId(taskId string) *DeleteTaskCommentReqBuilder { 1814 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1815 return builder 1816 } 1817 1818 // 评论ID 1819 // 1820 // 示例值:6937231762296684564 1821 func (builder *DeleteTaskCommentReqBuilder) CommentId(commentId string) *DeleteTaskCommentReqBuilder { 1822 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 1823 return builder 1824 } 1825 1826 func (builder *DeleteTaskCommentReqBuilder) Build() *DeleteTaskCommentReq { 1827 req := &DeleteTaskCommentReq{} 1828 req.apiReq = &larkcore.ApiReq{} 1829 req.apiReq.PathParams = builder.apiReq.PathParams 1830 return req 1831 } 1832 1833 type DeleteTaskCommentReq struct { 1834 apiReq *larkcore.ApiReq 1835 } 1836 1837 type DeleteTaskCommentResp struct { 1838 *larkcore.ApiResp `json:"-"` 1839 larkcore.CodeError 1840 } 1841 1842 func (resp *DeleteTaskCommentResp) Success() bool { 1843 return resp.Code == 0 1844 } 1845 1846 type GetTaskCommentReqBuilder struct { 1847 apiReq *larkcore.ApiReq 1848 } 1849 1850 func NewGetTaskCommentReqBuilder() *GetTaskCommentReqBuilder { 1851 builder := &GetTaskCommentReqBuilder{} 1852 builder.apiReq = &larkcore.ApiReq{ 1853 PathParams: larkcore.PathParams{}, 1854 QueryParams: larkcore.QueryParams{}, 1855 } 1856 return builder 1857 } 1858 1859 // 任务ID 1860 // 1861 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 1862 func (builder *GetTaskCommentReqBuilder) TaskId(taskId string) *GetTaskCommentReqBuilder { 1863 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1864 return builder 1865 } 1866 1867 // 评论ID 1868 // 1869 // 示例值:6937231762296684564 1870 func (builder *GetTaskCommentReqBuilder) CommentId(commentId string) *GetTaskCommentReqBuilder { 1871 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 1872 return builder 1873 } 1874 1875 func (builder *GetTaskCommentReqBuilder) Build() *GetTaskCommentReq { 1876 req := &GetTaskCommentReq{} 1877 req.apiReq = &larkcore.ApiReq{} 1878 req.apiReq.PathParams = builder.apiReq.PathParams 1879 return req 1880 } 1881 1882 type GetTaskCommentReq struct { 1883 apiReq *larkcore.ApiReq 1884 } 1885 1886 type GetTaskCommentRespData struct { 1887 Comment *Comment `json:"comment,omitempty"` // 返回新的任务评论详情 1888 } 1889 1890 type GetTaskCommentResp struct { 1891 *larkcore.ApiResp `json:"-"` 1892 larkcore.CodeError 1893 Data *GetTaskCommentRespData `json:"data"` // 业务数据 1894 } 1895 1896 func (resp *GetTaskCommentResp) Success() bool { 1897 return resp.Code == 0 1898 } 1899 1900 type ListTaskCommentReqBuilder struct { 1901 apiReq *larkcore.ApiReq 1902 limit int // 最大返回多少记录,当使用迭代器访问时才有效 1903 } 1904 1905 func NewListTaskCommentReqBuilder() *ListTaskCommentReqBuilder { 1906 builder := &ListTaskCommentReqBuilder{} 1907 builder.apiReq = &larkcore.ApiReq{ 1908 PathParams: larkcore.PathParams{}, 1909 QueryParams: larkcore.QueryParams{}, 1910 } 1911 return builder 1912 } 1913 1914 // 最大返回多少记录,当使用迭代器访问时才有效 1915 func (builder *ListTaskCommentReqBuilder) Limit(limit int) *ListTaskCommentReqBuilder { 1916 builder.limit = limit 1917 return builder 1918 } 1919 1920 // 任务id 1921 // 1922 // 示例值:"83912691-2e43-47fc-94a4-d512e03984fa" 1923 func (builder *ListTaskCommentReqBuilder) TaskId(taskId string) *ListTaskCommentReqBuilder { 1924 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 1925 return builder 1926 } 1927 1928 // 分页大小 1929 // 1930 // 示例值:10 1931 func (builder *ListTaskCommentReqBuilder) PageSize(pageSize int) *ListTaskCommentReqBuilder { 1932 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 1933 return builder 1934 } 1935 1936 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token获取查询结果 1937 // 1938 // 示例值:"MTYzMTg3ODUxNQ==" 1939 func (builder *ListTaskCommentReqBuilder) PageToken(pageToken string) *ListTaskCommentReqBuilder { 1940 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 1941 return builder 1942 } 1943 1944 // 评论排序标记,可按照评论时间从小到大查询,或者评论时间从大到小查询,不填默认按照从小到大 1945 // 1946 // 示例值:0 1947 func (builder *ListTaskCommentReqBuilder) ListDirection(listDirection int) *ListTaskCommentReqBuilder { 1948 builder.apiReq.QueryParams.Set("list_direction", fmt.Sprint(listDirection)) 1949 return builder 1950 } 1951 1952 func (builder *ListTaskCommentReqBuilder) Build() *ListTaskCommentReq { 1953 req := &ListTaskCommentReq{} 1954 req.apiReq = &larkcore.ApiReq{} 1955 req.Limit = builder.limit 1956 req.apiReq.PathParams = builder.apiReq.PathParams 1957 req.apiReq.QueryParams = builder.apiReq.QueryParams 1958 return req 1959 } 1960 1961 type ListTaskCommentReq struct { 1962 apiReq *larkcore.ApiReq 1963 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 1964 1965 } 1966 1967 type ListTaskCommentRespData struct { 1968 Items []*Comment `json:"items,omitempty"` // 返回的评论列表 1969 PageToken *string `json:"page_token,omitempty"` // 分页标记,分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 1970 HasMore *bool `json:"has_more,omitempty"` // 是否还有更多数据 1971 } 1972 1973 type ListTaskCommentResp struct { 1974 *larkcore.ApiResp `json:"-"` 1975 larkcore.CodeError 1976 Data *ListTaskCommentRespData `json:"data"` // 业务数据 1977 } 1978 1979 func (resp *ListTaskCommentResp) Success() bool { 1980 return resp.Code == 0 1981 } 1982 1983 type UpdateTaskCommentReqBodyBuilder struct { 1984 content string // 新的评论内容 1985 contentFlag bool 1986 richContent string // 新的富文本评论内容(优先使用) 1987 richContentFlag bool 1988 } 1989 1990 func NewUpdateTaskCommentReqBodyBuilder() *UpdateTaskCommentReqBodyBuilder { 1991 builder := &UpdateTaskCommentReqBodyBuilder{} 1992 return builder 1993 } 1994 1995 // 新的评论内容 1996 // 1997 //示例值:飞流直下三千尺,疑是银河落九天 1998 func (builder *UpdateTaskCommentReqBodyBuilder) Content(content string) *UpdateTaskCommentReqBodyBuilder { 1999 builder.content = content 2000 builder.contentFlag = true 2001 return builder 2002 } 2003 2004 // 新的富文本评论内容(优先使用) 2005 // 2006 //示例值:飞流直下三千尺,疑是银河落九天<at id=7058204817822318612></at> 2007 func (builder *UpdateTaskCommentReqBodyBuilder) RichContent(richContent string) *UpdateTaskCommentReqBodyBuilder { 2008 builder.richContent = richContent 2009 builder.richContentFlag = true 2010 return builder 2011 } 2012 2013 func (builder *UpdateTaskCommentReqBodyBuilder) Build() *UpdateTaskCommentReqBody { 2014 req := &UpdateTaskCommentReqBody{} 2015 if builder.contentFlag { 2016 req.Content = &builder.content 2017 } 2018 if builder.richContentFlag { 2019 req.RichContent = &builder.richContent 2020 } 2021 return req 2022 } 2023 2024 type UpdateTaskCommentPathReqBodyBuilder struct { 2025 content string // 新的评论内容 2026 contentFlag bool 2027 richContent string // 新的富文本评论内容(优先使用) 2028 richContentFlag bool 2029 } 2030 2031 func NewUpdateTaskCommentPathReqBodyBuilder() *UpdateTaskCommentPathReqBodyBuilder { 2032 builder := &UpdateTaskCommentPathReqBodyBuilder{} 2033 return builder 2034 } 2035 2036 // 新的评论内容 2037 // 2038 // 示例值:飞流直下三千尺,疑是银河落九天 2039 func (builder *UpdateTaskCommentPathReqBodyBuilder) Content(content string) *UpdateTaskCommentPathReqBodyBuilder { 2040 builder.content = content 2041 builder.contentFlag = true 2042 return builder 2043 } 2044 2045 // 新的富文本评论内容(优先使用) 2046 // 2047 // 示例值:飞流直下三千尺,疑是银河落九天<at id=7058204817822318612></at> 2048 func (builder *UpdateTaskCommentPathReqBodyBuilder) RichContent(richContent string) *UpdateTaskCommentPathReqBodyBuilder { 2049 builder.richContent = richContent 2050 builder.richContentFlag = true 2051 return builder 2052 } 2053 2054 func (builder *UpdateTaskCommentPathReqBodyBuilder) Build() (*UpdateTaskCommentReqBody, error) { 2055 req := &UpdateTaskCommentReqBody{} 2056 if builder.contentFlag { 2057 req.Content = &builder.content 2058 } 2059 if builder.richContentFlag { 2060 req.RichContent = &builder.richContent 2061 } 2062 return req, nil 2063 } 2064 2065 type UpdateTaskCommentReqBuilder struct { 2066 apiReq *larkcore.ApiReq 2067 body *UpdateTaskCommentReqBody 2068 } 2069 2070 func NewUpdateTaskCommentReqBuilder() *UpdateTaskCommentReqBuilder { 2071 builder := &UpdateTaskCommentReqBuilder{} 2072 builder.apiReq = &larkcore.ApiReq{ 2073 PathParams: larkcore.PathParams{}, 2074 QueryParams: larkcore.QueryParams{}, 2075 } 2076 return builder 2077 } 2078 2079 // 任务ID 2080 // 2081 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 2082 func (builder *UpdateTaskCommentReqBuilder) TaskId(taskId string) *UpdateTaskCommentReqBuilder { 2083 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2084 return builder 2085 } 2086 2087 // 评论 ID 2088 // 2089 // 示例值:6937231762296684564 2090 func (builder *UpdateTaskCommentReqBuilder) CommentId(commentId string) *UpdateTaskCommentReqBuilder { 2091 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 2092 return builder 2093 } 2094 2095 // 该接口用于更新评论内容 2096 func (builder *UpdateTaskCommentReqBuilder) Body(body *UpdateTaskCommentReqBody) *UpdateTaskCommentReqBuilder { 2097 builder.body = body 2098 return builder 2099 } 2100 2101 func (builder *UpdateTaskCommentReqBuilder) Build() *UpdateTaskCommentReq { 2102 req := &UpdateTaskCommentReq{} 2103 req.apiReq = &larkcore.ApiReq{} 2104 req.apiReq.PathParams = builder.apiReq.PathParams 2105 req.apiReq.Body = builder.body 2106 return req 2107 } 2108 2109 type UpdateTaskCommentReqBody struct { 2110 Content *string `json:"content,omitempty"` // 新的评论内容 2111 RichContent *string `json:"rich_content,omitempty"` // 新的富文本评论内容(优先使用) 2112 } 2113 2114 type UpdateTaskCommentReq struct { 2115 apiReq *larkcore.ApiReq 2116 Body *UpdateTaskCommentReqBody `body:""` 2117 } 2118 2119 type UpdateTaskCommentRespData struct { 2120 Comment *Comment `json:"comment,omitempty"` // 返回修改后的任务评论详情 2121 } 2122 2123 type UpdateTaskCommentResp struct { 2124 *larkcore.ApiResp `json:"-"` 2125 larkcore.CodeError 2126 Data *UpdateTaskCommentRespData `json:"data"` // 业务数据 2127 } 2128 2129 func (resp *UpdateTaskCommentResp) Success() bool { 2130 return resp.Code == 0 2131 } 2132 2133 type CreateTaskFollowerReqBuilder struct { 2134 apiReq *larkcore.ApiReq 2135 follower *Follower 2136 } 2137 2138 func NewCreateTaskFollowerReqBuilder() *CreateTaskFollowerReqBuilder { 2139 builder := &CreateTaskFollowerReqBuilder{} 2140 builder.apiReq = &larkcore.ApiReq{ 2141 PathParams: larkcore.PathParams{}, 2142 QueryParams: larkcore.QueryParams{}, 2143 } 2144 return builder 2145 } 2146 2147 // 任务 ID 2148 // 2149 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 2150 func (builder *CreateTaskFollowerReqBuilder) TaskId(taskId string) *CreateTaskFollowerReqBuilder { 2151 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2152 return builder 2153 } 2154 2155 // 此次调用中使用的用户ID的类型 2156 // 2157 // 示例值: 2158 func (builder *CreateTaskFollowerReqBuilder) UserIdType(userIdType string) *CreateTaskFollowerReqBuilder { 2159 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 2160 return builder 2161 } 2162 2163 // 该接口用于创建任务关注人。可以一次性添加多位关注人。关注人ID要使用表示用户的ID。 2164 func (builder *CreateTaskFollowerReqBuilder) Follower(follower *Follower) *CreateTaskFollowerReqBuilder { 2165 builder.follower = follower 2166 return builder 2167 } 2168 2169 func (builder *CreateTaskFollowerReqBuilder) Build() *CreateTaskFollowerReq { 2170 req := &CreateTaskFollowerReq{} 2171 req.apiReq = &larkcore.ApiReq{} 2172 req.apiReq.PathParams = builder.apiReq.PathParams 2173 req.apiReq.QueryParams = builder.apiReq.QueryParams 2174 req.apiReq.Body = builder.follower 2175 return req 2176 } 2177 2178 type CreateTaskFollowerReq struct { 2179 apiReq *larkcore.ApiReq 2180 Follower *Follower `body:""` 2181 } 2182 2183 type CreateTaskFollowerRespData struct { 2184 Follower *Follower `json:"follower,omitempty"` // 创建后的任务关注者 2185 } 2186 2187 type CreateTaskFollowerResp struct { 2188 *larkcore.ApiResp `json:"-"` 2189 larkcore.CodeError 2190 Data *CreateTaskFollowerRespData `json:"data"` // 业务数据 2191 } 2192 2193 func (resp *CreateTaskFollowerResp) Success() bool { 2194 return resp.Code == 0 2195 } 2196 2197 type DeleteTaskFollowerReqBuilder struct { 2198 apiReq *larkcore.ApiReq 2199 } 2200 2201 func NewDeleteTaskFollowerReqBuilder() *DeleteTaskFollowerReqBuilder { 2202 builder := &DeleteTaskFollowerReqBuilder{} 2203 builder.apiReq = &larkcore.ApiReq{ 2204 PathParams: larkcore.PathParams{}, 2205 QueryParams: larkcore.QueryParams{}, 2206 } 2207 return builder 2208 } 2209 2210 // 任务 ID 2211 // 2212 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 2213 func (builder *DeleteTaskFollowerReqBuilder) TaskId(taskId string) *DeleteTaskFollowerReqBuilder { 2214 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2215 return builder 2216 } 2217 2218 // 任务关注人 ID(Open ID或User ID,由user_id_type指定) 2219 // 2220 // 示例值:ou_87e1a581b36ecc4862cbfbce473f346a 2221 func (builder *DeleteTaskFollowerReqBuilder) FollowerId(followerId string) *DeleteTaskFollowerReqBuilder { 2222 builder.apiReq.PathParams.Set("follower_id", fmt.Sprint(followerId)) 2223 return builder 2224 } 2225 2226 // 此次调用中使用的用户ID的类型 2227 // 2228 // 示例值: 2229 func (builder *DeleteTaskFollowerReqBuilder) UserIdType(userIdType string) *DeleteTaskFollowerReqBuilder { 2230 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 2231 return builder 2232 } 2233 2234 func (builder *DeleteTaskFollowerReqBuilder) Build() *DeleteTaskFollowerReq { 2235 req := &DeleteTaskFollowerReq{} 2236 req.apiReq = &larkcore.ApiReq{} 2237 req.apiReq.PathParams = builder.apiReq.PathParams 2238 req.apiReq.QueryParams = builder.apiReq.QueryParams 2239 return req 2240 } 2241 2242 type DeleteTaskFollowerReq struct { 2243 apiReq *larkcore.ApiReq 2244 } 2245 2246 type DeleteTaskFollowerResp struct { 2247 *larkcore.ApiResp `json:"-"` 2248 larkcore.CodeError 2249 } 2250 2251 func (resp *DeleteTaskFollowerResp) Success() bool { 2252 return resp.Code == 0 2253 } 2254 2255 type ListTaskFollowerReqBuilder struct { 2256 apiReq *larkcore.ApiReq 2257 limit int // 最大返回多少记录,当使用迭代器访问时才有效 2258 } 2259 2260 func NewListTaskFollowerReqBuilder() *ListTaskFollowerReqBuilder { 2261 builder := &ListTaskFollowerReqBuilder{} 2262 builder.apiReq = &larkcore.ApiReq{ 2263 PathParams: larkcore.PathParams{}, 2264 QueryParams: larkcore.QueryParams{}, 2265 } 2266 return builder 2267 } 2268 2269 // 最大返回多少记录,当使用迭代器访问时才有效 2270 func (builder *ListTaskFollowerReqBuilder) Limit(limit int) *ListTaskFollowerReqBuilder { 2271 builder.limit = limit 2272 return builder 2273 } 2274 2275 // 任务 ID 2276 // 2277 // 示例值:0d38e26e-190a-49e9-93a2-35067763ed1f 2278 func (builder *ListTaskFollowerReqBuilder) TaskId(taskId string) *ListTaskFollowerReqBuilder { 2279 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2280 return builder 2281 } 2282 2283 // 分页大小 2284 // 2285 // 示例值:10 2286 func (builder *ListTaskFollowerReqBuilder) PageSize(pageSize int) *ListTaskFollowerReqBuilder { 2287 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 2288 return builder 2289 } 2290 2291 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 2292 // 2293 // 示例值:「上次返回的page_token」 2294 func (builder *ListTaskFollowerReqBuilder) PageToken(pageToken string) *ListTaskFollowerReqBuilder { 2295 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 2296 return builder 2297 } 2298 2299 // 此次调用中使用的用户ID的类型 2300 // 2301 // 示例值: 2302 func (builder *ListTaskFollowerReqBuilder) UserIdType(userIdType string) *ListTaskFollowerReqBuilder { 2303 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 2304 return builder 2305 } 2306 2307 func (builder *ListTaskFollowerReqBuilder) Build() *ListTaskFollowerReq { 2308 req := &ListTaskFollowerReq{} 2309 req.apiReq = &larkcore.ApiReq{} 2310 req.Limit = builder.limit 2311 req.apiReq.PathParams = builder.apiReq.PathParams 2312 req.apiReq.QueryParams = builder.apiReq.QueryParams 2313 return req 2314 } 2315 2316 type ListTaskFollowerReq struct { 2317 apiReq *larkcore.ApiReq 2318 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 2319 2320 } 2321 2322 type ListTaskFollowerRespData struct { 2323 Items []*Follower `json:"items,omitempty"` // 返回的关注人ID列表 2324 PageToken *string `json:"page_token,omitempty"` // 分页标记,分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 2325 HasMore *bool `json:"has_more,omitempty"` // 是否还有更多数据 2326 } 2327 2328 type ListTaskFollowerResp struct { 2329 *larkcore.ApiResp `json:"-"` 2330 larkcore.CodeError 2331 Data *ListTaskFollowerRespData `json:"data"` // 业务数据 2332 } 2333 2334 func (resp *ListTaskFollowerResp) Success() bool { 2335 return resp.Code == 0 2336 } 2337 2338 type CreateTaskReminderReqBuilder struct { 2339 apiReq *larkcore.ApiReq 2340 reminder *Reminder 2341 } 2342 2343 func NewCreateTaskReminderReqBuilder() *CreateTaskReminderReqBuilder { 2344 builder := &CreateTaskReminderReqBuilder{} 2345 builder.apiReq = &larkcore.ApiReq{ 2346 PathParams: larkcore.PathParams{}, 2347 QueryParams: larkcore.QueryParams{}, 2348 } 2349 return builder 2350 } 2351 2352 // 任务 ID 2353 // 2354 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 2355 func (builder *CreateTaskReminderReqBuilder) TaskId(taskId string) *CreateTaskReminderReqBuilder { 2356 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2357 return builder 2358 } 2359 2360 // 该接口用于创建任务的提醒时间。提醒时间在截止时间基础上做偏移,但是偏移后的结果不能早于当前时间。 2361 func (builder *CreateTaskReminderReqBuilder) Reminder(reminder *Reminder) *CreateTaskReminderReqBuilder { 2362 builder.reminder = reminder 2363 return builder 2364 } 2365 2366 func (builder *CreateTaskReminderReqBuilder) Build() *CreateTaskReminderReq { 2367 req := &CreateTaskReminderReq{} 2368 req.apiReq = &larkcore.ApiReq{} 2369 req.apiReq.PathParams = builder.apiReq.PathParams 2370 req.apiReq.Body = builder.reminder 2371 return req 2372 } 2373 2374 type CreateTaskReminderReq struct { 2375 apiReq *larkcore.ApiReq 2376 Reminder *Reminder `body:""` 2377 } 2378 2379 type CreateTaskReminderRespData struct { 2380 Reminder *Reminder `json:"reminder,omitempty"` // 返回创建成功的提醒时间 2381 } 2382 2383 type CreateTaskReminderResp struct { 2384 *larkcore.ApiResp `json:"-"` 2385 larkcore.CodeError 2386 Data *CreateTaskReminderRespData `json:"data"` // 业务数据 2387 } 2388 2389 func (resp *CreateTaskReminderResp) Success() bool { 2390 return resp.Code == 0 2391 } 2392 2393 type DeleteTaskReminderReqBuilder struct { 2394 apiReq *larkcore.ApiReq 2395 } 2396 2397 func NewDeleteTaskReminderReqBuilder() *DeleteTaskReminderReqBuilder { 2398 builder := &DeleteTaskReminderReqBuilder{} 2399 builder.apiReq = &larkcore.ApiReq{ 2400 PathParams: larkcore.PathParams{}, 2401 QueryParams: larkcore.QueryParams{}, 2402 } 2403 return builder 2404 } 2405 2406 // 任务 ID 2407 // 2408 // 示例值:83912691-2e43-47fc-94a4-d512e03984fa 2409 func (builder *DeleteTaskReminderReqBuilder) TaskId(taskId string) *DeleteTaskReminderReqBuilder { 2410 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2411 return builder 2412 } 2413 2414 // 任务提醒时间设置的 ID(即 reminder.id) 2415 // 2416 // 示例值:1 2417 func (builder *DeleteTaskReminderReqBuilder) ReminderId(reminderId string) *DeleteTaskReminderReqBuilder { 2418 builder.apiReq.PathParams.Set("reminder_id", fmt.Sprint(reminderId)) 2419 return builder 2420 } 2421 2422 func (builder *DeleteTaskReminderReqBuilder) Build() *DeleteTaskReminderReq { 2423 req := &DeleteTaskReminderReq{} 2424 req.apiReq = &larkcore.ApiReq{} 2425 req.apiReq.PathParams = builder.apiReq.PathParams 2426 return req 2427 } 2428 2429 type DeleteTaskReminderReq struct { 2430 apiReq *larkcore.ApiReq 2431 } 2432 2433 type DeleteTaskReminderResp struct { 2434 *larkcore.ApiResp `json:"-"` 2435 larkcore.CodeError 2436 } 2437 2438 func (resp *DeleteTaskReminderResp) Success() bool { 2439 return resp.Code == 0 2440 } 2441 2442 type ListTaskReminderReqBuilder struct { 2443 apiReq *larkcore.ApiReq 2444 limit int // 最大返回多少记录,当使用迭代器访问时才有效 2445 } 2446 2447 func NewListTaskReminderReqBuilder() *ListTaskReminderReqBuilder { 2448 builder := &ListTaskReminderReqBuilder{} 2449 builder.apiReq = &larkcore.ApiReq{ 2450 PathParams: larkcore.PathParams{}, 2451 QueryParams: larkcore.QueryParams{}, 2452 } 2453 return builder 2454 } 2455 2456 // 最大返回多少记录,当使用迭代器访问时才有效 2457 func (builder *ListTaskReminderReqBuilder) Limit(limit int) *ListTaskReminderReqBuilder { 2458 builder.limit = limit 2459 return builder 2460 } 2461 2462 // 任务 ID 2463 // 2464 // 示例值:0d38e26e-190a-49e9-93a2-35067763ed1f 2465 func (builder *ListTaskReminderReqBuilder) TaskId(taskId string) *ListTaskReminderReqBuilder { 2466 builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId)) 2467 return builder 2468 } 2469 2470 // 分页大小 2471 // 2472 // 示例值:50 2473 func (builder *ListTaskReminderReqBuilder) PageSize(pageSize int) *ListTaskReminderReqBuilder { 2474 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 2475 return builder 2476 } 2477 2478 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 2479 // 2480 // 示例值:「填写上次返回的page_token」 2481 func (builder *ListTaskReminderReqBuilder) PageToken(pageToken string) *ListTaskReminderReqBuilder { 2482 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 2483 return builder 2484 } 2485 2486 func (builder *ListTaskReminderReqBuilder) Build() *ListTaskReminderReq { 2487 req := &ListTaskReminderReq{} 2488 req.apiReq = &larkcore.ApiReq{} 2489 req.Limit = builder.limit 2490 req.apiReq.PathParams = builder.apiReq.PathParams 2491 req.apiReq.QueryParams = builder.apiReq.QueryParams 2492 return req 2493 } 2494 2495 type ListTaskReminderReq struct { 2496 apiReq *larkcore.ApiReq 2497 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 2498 2499 } 2500 2501 type ListTaskReminderRespData struct { 2502 Items []*Reminder `json:"items,omitempty"` // 返回提醒时间设置列表 2503 PageToken *string `json:"page_token,omitempty"` // 分页标记,分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 2504 HasMore *bool `json:"has_more,omitempty"` // 是否还有更多数据 2505 } 2506 2507 type ListTaskReminderResp struct { 2508 *larkcore.ApiResp `json:"-"` 2509 larkcore.CodeError 2510 Data *ListTaskReminderRespData `json:"data"` // 业务数据 2511 } 2512 2513 func (resp *ListTaskReminderResp) Success() bool { 2514 return resp.Code == 0 2515 } 2516 2517 type P2TaskUpdateTenantV1Data struct { 2518 UserIdList *UserIdList `json:"user_id_list,omitempty"` // 用户 ID 列表 2519 TaskId *string `json:"task_id,omitempty"` // 任务的id 2520 ObjectType *string `json:"object_type,omitempty"` // 变更的数据类型,可选值:;"task","collaborator","follower" 2521 EventType *string `json:"event_type,omitempty"` // 事件类型,可选值:;"create","delete","update" 2522 } 2523 2524 type P2TaskUpdateTenantV1 struct { 2525 *larkevent.EventV2Base // 事件基础数据 2526 *larkevent.EventReq // 请求原生数据 2527 Event *P2TaskUpdateTenantV1Data `json:"event"` // 事件内容 2528 } 2529 2530 func (m *P2TaskUpdateTenantV1) RawReq(req *larkevent.EventReq) { 2531 m.EventReq = req 2532 } 2533 2534 type P2TaskUpdatedV1Data struct { 2535 TaskId *string `json:"task_id,omitempty"` // 任务ID 2536 ObjType *int `json:"obj_type,omitempty"` // 通知类型(1:任务详情发生变化,2:任务协作者发生变化,3:任务关注者发生变化,4:任务提醒时间发生变化,5:任务完成,6:任务取消完成,7:任务删除) 2537 } 2538 2539 type P2TaskUpdatedV1 struct { 2540 *larkevent.EventV2Base // 事件基础数据 2541 *larkevent.EventReq // 请求原生数据 2542 Event *P2TaskUpdatedV1Data `json:"event"` // 事件内容 2543 } 2544 2545 func (m *P2TaskUpdatedV1) RawReq(req *larkevent.EventReq) { 2546 m.EventReq = req 2547 } 2548 2549 type P2TaskCommentUpdatedV1Data struct { 2550 TaskId *string `json:"task_id,omitempty"` // 任务ID 2551 CommentId *string `json:"comment_id,omitempty"` // 任务评论ID 2552 ParentId *string `json:"parent_id,omitempty"` // 任务评论父ID 2553 ObjType *int `json:"obj_type,omitempty"` // 通知类型(1:创建评论,2:回复评论,3:更新评论,4:删除评论) 2554 } 2555 2556 type P2TaskCommentUpdatedV1 struct { 2557 *larkevent.EventV2Base // 事件基础数据 2558 *larkevent.EventReq // 请求原生数据 2559 Event *P2TaskCommentUpdatedV1Data `json:"event"` // 事件内容 2560 } 2561 2562 func (m *P2TaskCommentUpdatedV1) RawReq(req *larkevent.EventReq) { 2563 m.EventReq = req 2564 } 2565 2566 type ListTaskIterator struct { 2567 nextPageToken *string 2568 items []*Task 2569 index int 2570 limit int 2571 ctx context.Context 2572 req *ListTaskReq 2573 listFunc func(ctx context.Context, req *ListTaskReq, options ...larkcore.RequestOptionFunc) (*ListTaskResp, error) 2574 options []larkcore.RequestOptionFunc 2575 curlNum int 2576 } 2577 2578 func (iterator *ListTaskIterator) Next() (bool, *Task, error) { 2579 // 达到最大量,则返回 2580 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 2581 return false, nil, nil 2582 } 2583 2584 // 为0则拉取数据 2585 if iterator.index == 0 || iterator.index >= len(iterator.items) { 2586 if iterator.index != 0 && iterator.nextPageToken == nil { 2587 return false, nil, nil 2588 } 2589 if iterator.nextPageToken != nil { 2590 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 2591 } 2592 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 2593 if err != nil { 2594 return false, nil, err 2595 } 2596 2597 if resp.Code != 0 { 2598 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 2599 } 2600 2601 if len(resp.Data.Items) == 0 { 2602 return false, nil, nil 2603 } 2604 2605 iterator.nextPageToken = resp.Data.PageToken 2606 iterator.items = resp.Data.Items 2607 iterator.index = 0 2608 } 2609 2610 block := iterator.items[iterator.index] 2611 iterator.index++ 2612 iterator.curlNum++ 2613 return true, block, nil 2614 } 2615 2616 func (iterator *ListTaskIterator) NextPageToken() *string { 2617 return iterator.nextPageToken 2618 } 2619 2620 type ListTaskCollaboratorIterator struct { 2621 nextPageToken *string 2622 items []*Collaborator 2623 index int 2624 limit int 2625 ctx context.Context 2626 req *ListTaskCollaboratorReq 2627 listFunc func(ctx context.Context, req *ListTaskCollaboratorReq, options ...larkcore.RequestOptionFunc) (*ListTaskCollaboratorResp, error) 2628 options []larkcore.RequestOptionFunc 2629 curlNum int 2630 } 2631 2632 func (iterator *ListTaskCollaboratorIterator) Next() (bool, *Collaborator, error) { 2633 // 达到最大量,则返回 2634 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 2635 return false, nil, nil 2636 } 2637 2638 // 为0则拉取数据 2639 if iterator.index == 0 || iterator.index >= len(iterator.items) { 2640 if iterator.index != 0 && iterator.nextPageToken == nil { 2641 return false, nil, nil 2642 } 2643 if iterator.nextPageToken != nil { 2644 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 2645 } 2646 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 2647 if err != nil { 2648 return false, nil, err 2649 } 2650 2651 if resp.Code != 0 { 2652 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 2653 } 2654 2655 if len(resp.Data.Items) == 0 { 2656 return false, nil, nil 2657 } 2658 2659 iterator.nextPageToken = resp.Data.PageToken 2660 iterator.items = resp.Data.Items 2661 iterator.index = 0 2662 } 2663 2664 block := iterator.items[iterator.index] 2665 iterator.index++ 2666 iterator.curlNum++ 2667 return true, block, nil 2668 } 2669 2670 func (iterator *ListTaskCollaboratorIterator) NextPageToken() *string { 2671 return iterator.nextPageToken 2672 } 2673 2674 type ListTaskCommentIterator struct { 2675 nextPageToken *string 2676 items []*Comment 2677 index int 2678 limit int 2679 ctx context.Context 2680 req *ListTaskCommentReq 2681 listFunc func(ctx context.Context, req *ListTaskCommentReq, options ...larkcore.RequestOptionFunc) (*ListTaskCommentResp, error) 2682 options []larkcore.RequestOptionFunc 2683 curlNum int 2684 } 2685 2686 func (iterator *ListTaskCommentIterator) Next() (bool, *Comment, error) { 2687 // 达到最大量,则返回 2688 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 2689 return false, nil, nil 2690 } 2691 2692 // 为0则拉取数据 2693 if iterator.index == 0 || iterator.index >= len(iterator.items) { 2694 if iterator.index != 0 && iterator.nextPageToken == nil { 2695 return false, nil, nil 2696 } 2697 if iterator.nextPageToken != nil { 2698 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 2699 } 2700 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 2701 if err != nil { 2702 return false, nil, err 2703 } 2704 2705 if resp.Code != 0 { 2706 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 2707 } 2708 2709 if len(resp.Data.Items) == 0 { 2710 return false, nil, nil 2711 } 2712 2713 iterator.nextPageToken = resp.Data.PageToken 2714 iterator.items = resp.Data.Items 2715 iterator.index = 0 2716 } 2717 2718 block := iterator.items[iterator.index] 2719 iterator.index++ 2720 iterator.curlNum++ 2721 return true, block, nil 2722 } 2723 2724 func (iterator *ListTaskCommentIterator) NextPageToken() *string { 2725 return iterator.nextPageToken 2726 } 2727 2728 type ListTaskFollowerIterator struct { 2729 nextPageToken *string 2730 items []*Follower 2731 index int 2732 limit int 2733 ctx context.Context 2734 req *ListTaskFollowerReq 2735 listFunc func(ctx context.Context, req *ListTaskFollowerReq, options ...larkcore.RequestOptionFunc) (*ListTaskFollowerResp, error) 2736 options []larkcore.RequestOptionFunc 2737 curlNum int 2738 } 2739 2740 func (iterator *ListTaskFollowerIterator) Next() (bool, *Follower, error) { 2741 // 达到最大量,则返回 2742 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 2743 return false, nil, nil 2744 } 2745 2746 // 为0则拉取数据 2747 if iterator.index == 0 || iterator.index >= len(iterator.items) { 2748 if iterator.index != 0 && iterator.nextPageToken == nil { 2749 return false, nil, nil 2750 } 2751 if iterator.nextPageToken != nil { 2752 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 2753 } 2754 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 2755 if err != nil { 2756 return false, nil, err 2757 } 2758 2759 if resp.Code != 0 { 2760 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 2761 } 2762 2763 if len(resp.Data.Items) == 0 { 2764 return false, nil, nil 2765 } 2766 2767 iterator.nextPageToken = resp.Data.PageToken 2768 iterator.items = resp.Data.Items 2769 iterator.index = 0 2770 } 2771 2772 block := iterator.items[iterator.index] 2773 iterator.index++ 2774 iterator.curlNum++ 2775 return true, block, nil 2776 } 2777 2778 func (iterator *ListTaskFollowerIterator) NextPageToken() *string { 2779 return iterator.nextPageToken 2780 } 2781 2782 type ListTaskReminderIterator struct { 2783 nextPageToken *string 2784 items []*Reminder 2785 index int 2786 limit int 2787 ctx context.Context 2788 req *ListTaskReminderReq 2789 listFunc func(ctx context.Context, req *ListTaskReminderReq, options ...larkcore.RequestOptionFunc) (*ListTaskReminderResp, error) 2790 options []larkcore.RequestOptionFunc 2791 curlNum int 2792 } 2793 2794 func (iterator *ListTaskReminderIterator) Next() (bool, *Reminder, error) { 2795 // 达到最大量,则返回 2796 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 2797 return false, nil, nil 2798 } 2799 2800 // 为0则拉取数据 2801 if iterator.index == 0 || iterator.index >= len(iterator.items) { 2802 if iterator.index != 0 && iterator.nextPageToken == nil { 2803 return false, nil, nil 2804 } 2805 if iterator.nextPageToken != nil { 2806 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 2807 } 2808 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 2809 if err != nil { 2810 return false, nil, err 2811 } 2812 2813 if resp.Code != 0 { 2814 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 2815 } 2816 2817 if len(resp.Data.Items) == 0 { 2818 return false, nil, nil 2819 } 2820 2821 iterator.nextPageToken = resp.Data.PageToken 2822 iterator.items = resp.Data.Items 2823 iterator.index = 0 2824 } 2825 2826 block := iterator.items[iterator.index] 2827 iterator.index++ 2828 iterator.curlNum++ 2829 return true, block, nil 2830 } 2831 2832 func (iterator *ListTaskReminderIterator) NextPageToken() *string { 2833 return iterator.nextPageToken 2834 }