gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/baike/v1/model.go (about) 1 // Package baike 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 larkbaike 15 16 import ( 17 "fmt" 18 19 "context" 20 "errors" 21 22 "gitee.com/larksuite/oapi-sdk-go/v3/core" 23 ) 24 25 const ( 26 UserIdTypeUserId = "user_id" // 以user_id来识别用户 27 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 28 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 29 ) 30 31 const ( 32 UserIdTypeUpdateDraftUserId = "user_id" // 以user_id来识别用户 33 UserIdTypeUpdateDraftUnionId = "union_id" // 以union_id来识别用户 34 UserIdTypeUpdateDraftOpenId = "open_id" // 以open_id来识别用户 35 ) 36 37 const ( 38 UserIdTypeCreateEntityUserId = "user_id" // 以user_id来识别用户 39 UserIdTypeCreateEntityUnionId = "union_id" // 以union_id来识别用户 40 UserIdTypeCreateEntityOpenId = "open_id" // 以open_id来识别用户 41 ) 42 43 const ( 44 UserIdTypeGetEntityUserId = "user_id" // 以user_id来识别用户 45 UserIdTypeGetEntityUnionId = "union_id" // 以union_id来识别用户 46 UserIdTypeGetEntityOpenId = "open_id" // 以open_id来识别用户 47 ) 48 49 const ( 50 UserIdTypeListEntityUserId = "user_id" // 以user_id来识别用户 51 UserIdTypeListEntityUnionId = "union_id" // 以union_id来识别用户 52 UserIdTypeListEntityOpenId = "open_id" // 以open_id来识别用户 53 ) 54 55 const ( 56 UserIdTypeSearchEntityUserId = "user_id" // 以user_id来识别用户 57 UserIdTypeSearchEntityUnionId = "union_id" // 以union_id来识别用户 58 UserIdTypeSearchEntityOpenId = "open_id" // 以open_id来识别用户 59 ) 60 61 const ( 62 UserIdTypeUpdateEntityUserId = "user_id" // 以user_id来识别用户 63 UserIdTypeUpdateEntityUnionId = "union_id" // 以union_id来识别用户 64 UserIdTypeUpdateEntityOpenId = "open_id" // 以open_id来识别用户 65 ) 66 67 type Abbreviation struct { 68 Id *string `json:"id,omitempty"` // 相关词条 ID 69 } 70 71 type AbbreviationBuilder struct { 72 id string // 相关词条 ID 73 idFlag bool 74 } 75 76 func NewAbbreviationBuilder() *AbbreviationBuilder { 77 builder := &AbbreviationBuilder{} 78 return builder 79 } 80 81 // 相关词条 ID 82 // 83 // 示例值:enterprise_51587960 84 func (builder *AbbreviationBuilder) Id(id string) *AbbreviationBuilder { 85 builder.id = id 86 builder.idFlag = true 87 return builder 88 } 89 90 func (builder *AbbreviationBuilder) Build() *Abbreviation { 91 req := &Abbreviation{} 92 if builder.idFlag { 93 req.Id = &builder.id 94 95 } 96 return req 97 } 98 99 type Classification struct { 100 Id *string `json:"id,omitempty"` // 二级分类 ID 101 Name *string `json:"name,omitempty"` // 二级分类名称 102 FatherId *string `json:"father_id,omitempty"` // 对应一级分类 ID 103 } 104 105 type ClassificationBuilder struct { 106 id string // 二级分类 ID 107 idFlag bool 108 name string // 二级分类名称 109 nameFlag bool 110 fatherId string // 对应一级分类 ID 111 fatherIdFlag bool 112 } 113 114 func NewClassificationBuilder() *ClassificationBuilder { 115 builder := &ClassificationBuilder{} 116 return builder 117 } 118 119 // 二级分类 ID 120 // 121 // 示例值:7049606926702837761 122 func (builder *ClassificationBuilder) Id(id string) *ClassificationBuilder { 123 builder.id = id 124 builder.idFlag = true 125 return builder 126 } 127 128 // 二级分类名称 129 // 130 // 示例值:行业术语 131 func (builder *ClassificationBuilder) Name(name string) *ClassificationBuilder { 132 builder.name = name 133 builder.nameFlag = true 134 return builder 135 } 136 137 // 对应一级分类 ID 138 // 139 // 示例值:7049606926702837777 140 func (builder *ClassificationBuilder) FatherId(fatherId string) *ClassificationBuilder { 141 builder.fatherId = fatherId 142 builder.fatherIdFlag = true 143 return builder 144 } 145 146 func (builder *ClassificationBuilder) Build() *Classification { 147 req := &Classification{} 148 if builder.idFlag { 149 req.Id = &builder.id 150 151 } 152 if builder.nameFlag { 153 req.Name = &builder.name 154 155 } 156 if builder.fatherIdFlag { 157 req.FatherId = &builder.fatherId 158 159 } 160 return req 161 } 162 163 type DisplayStatus struct { 164 AllowHighlight *bool `json:"allow_highlight,omitempty"` // 对应名称是否在消息/云文档高亮 165 AllowSearch *bool `json:"allow_search,omitempty"` // 对应名称是否在搜索结果中展示 166 } 167 168 type DisplayStatusBuilder struct { 169 allowHighlight bool // 对应名称是否在消息/云文档高亮 170 allowHighlightFlag bool 171 allowSearch bool // 对应名称是否在搜索结果中展示 172 allowSearchFlag bool 173 } 174 175 func NewDisplayStatusBuilder() *DisplayStatusBuilder { 176 builder := &DisplayStatusBuilder{} 177 return builder 178 } 179 180 // 对应名称是否在消息/云文档高亮 181 // 182 // 示例值:true 183 func (builder *DisplayStatusBuilder) AllowHighlight(allowHighlight bool) *DisplayStatusBuilder { 184 builder.allowHighlight = allowHighlight 185 builder.allowHighlightFlag = true 186 return builder 187 } 188 189 // 对应名称是否在搜索结果中展示 190 // 191 // 示例值:true 192 func (builder *DisplayStatusBuilder) AllowSearch(allowSearch bool) *DisplayStatusBuilder { 193 builder.allowSearch = allowSearch 194 builder.allowSearchFlag = true 195 return builder 196 } 197 198 func (builder *DisplayStatusBuilder) Build() *DisplayStatus { 199 req := &DisplayStatus{} 200 if builder.allowHighlightFlag { 201 req.AllowHighlight = &builder.allowHighlight 202 203 } 204 if builder.allowSearchFlag { 205 req.AllowSearch = &builder.allowSearch 206 207 } 208 return req 209 } 210 211 type Draft struct { 212 DraftId *string `json:"draft_id,omitempty"` // 草稿 ID 213 Entity *Entity `json:"entity,omitempty"` // 词条信息 214 } 215 216 type DraftBuilder struct { 217 draftId string // 草稿 ID 218 draftIdFlag bool 219 entity *Entity // 词条信息 220 entityFlag bool 221 } 222 223 func NewDraftBuilder() *DraftBuilder { 224 builder := &DraftBuilder{} 225 return builder 226 } 227 228 // 草稿 ID 229 // 230 // 示例值:42322 231 func (builder *DraftBuilder) DraftId(draftId string) *DraftBuilder { 232 builder.draftId = draftId 233 builder.draftIdFlag = true 234 return builder 235 } 236 237 // 词条信息 238 // 239 // 示例值: 240 func (builder *DraftBuilder) Entity(entity *Entity) *DraftBuilder { 241 builder.entity = entity 242 builder.entityFlag = true 243 return builder 244 } 245 246 func (builder *DraftBuilder) Build() *Draft { 247 req := &Draft{} 248 if builder.draftIdFlag { 249 req.DraftId = &builder.draftId 250 251 } 252 if builder.entityFlag { 253 req.Entity = builder.entity 254 } 255 return req 256 } 257 258 type Entity struct { 259 Id *string `json:"id,omitempty"` // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写) 260 MainKeys []*Term `json:"main_keys,omitempty"` // 词条名 261 262 Aliases []*Term `json:"aliases,omitempty"` // 别名 263 Description *string `json:"description,omitempty"` // 词条释义(纯文本格式) 264 CreateTime *string `json:"create_time,omitempty"` // 词条创建时间 265 UpdateTime *string `json:"update_time,omitempty"` // 词条最近更新时间 266 RelatedMeta *RelatedMeta `json:"related_meta,omitempty"` // 更多相关信息 267 Categories []string `json:"categories,omitempty"` // 词条标签 268 Statistics *Statistics `json:"statistics,omitempty"` // 当前词条收到的反馈数据 269 OuterInfo *OuterInfo `json:"outer_info,omitempty"` // 外部系统关联数据 270 RichText *string `json:"rich_text,omitempty"` // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分 271 } 272 273 type EntityBuilder struct { 274 id string // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写) 275 idFlag bool 276 mainKeys []*Term // 词条名 277 mainKeysFlag bool 278 279 aliases []*Term // 别名 280 aliasesFlag bool 281 description string // 词条释义(纯文本格式) 282 descriptionFlag bool 283 createTime string // 词条创建时间 284 createTimeFlag bool 285 updateTime string // 词条最近更新时间 286 updateTimeFlag bool 287 relatedMeta *RelatedMeta // 更多相关信息 288 relatedMetaFlag bool 289 categories []string // 词条标签 290 categoriesFlag bool 291 statistics *Statistics // 当前词条收到的反馈数据 292 statisticsFlag bool 293 outerInfo *OuterInfo // 外部系统关联数据 294 outerInfoFlag bool 295 richText string // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分 296 richTextFlag bool 297 } 298 299 func NewEntityBuilder() *EntityBuilder { 300 builder := &EntityBuilder{} 301 return builder 302 } 303 304 // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写) 305 // 306 // 示例值:enterprise_40217521 307 func (builder *EntityBuilder) Id(id string) *EntityBuilder { 308 builder.id = id 309 builder.idFlag = true 310 return builder 311 } 312 313 // 词条名 314 // 315 // 示例值: 316 func (builder *EntityBuilder) MainKeys(mainKeys []*Term) *EntityBuilder { 317 builder.mainKeys = mainKeys 318 builder.mainKeysFlag = true 319 return builder 320 } 321 322 // 别名 323 // 324 // 示例值: 325 func (builder *EntityBuilder) Aliases(aliases []*Term) *EntityBuilder { 326 builder.aliases = aliases 327 builder.aliasesFlag = true 328 return builder 329 } 330 331 // 词条释义(纯文本格式) 332 // 333 // 示例值:企业百科是飞书提供的一款知识管理工具,通过企业百科可以帮助企业将分散的知识信息进行聚合,并通过UGC的方式,促进企业知识的保鲜和流通 334 func (builder *EntityBuilder) Description(description string) *EntityBuilder { 335 builder.description = description 336 builder.descriptionFlag = true 337 return builder 338 } 339 340 // 词条创建时间 341 // 342 // 示例值:1649318125 343 func (builder *EntityBuilder) CreateTime(createTime string) *EntityBuilder { 344 builder.createTime = createTime 345 builder.createTimeFlag = true 346 return builder 347 } 348 349 // 词条最近更新时间 350 // 351 // 示例值:1649318125 352 func (builder *EntityBuilder) UpdateTime(updateTime string) *EntityBuilder { 353 builder.updateTime = updateTime 354 builder.updateTimeFlag = true 355 return builder 356 } 357 358 // 更多相关信息 359 // 360 // 示例值: 361 func (builder *EntityBuilder) RelatedMeta(relatedMeta *RelatedMeta) *EntityBuilder { 362 builder.relatedMeta = relatedMeta 363 builder.relatedMetaFlag = true 364 return builder 365 } 366 367 // 词条标签 368 // 369 // 示例值: 370 func (builder *EntityBuilder) Categories(categories []string) *EntityBuilder { 371 builder.categories = categories 372 builder.categoriesFlag = true 373 return builder 374 } 375 376 // 当前词条收到的反馈数据 377 // 378 // 示例值: 379 func (builder *EntityBuilder) Statistics(statistics *Statistics) *EntityBuilder { 380 builder.statistics = statistics 381 builder.statisticsFlag = true 382 return builder 383 } 384 385 // 外部系统关联数据 386 // 387 // 示例值: 388 func (builder *EntityBuilder) OuterInfo(outerInfo *OuterInfo) *EntityBuilder { 389 builder.outerInfo = outerInfo 390 builder.outerInfoFlag = true 391 return builder 392 } 393 394 // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分 395 // 396 // 示例值:<b>加粗</b><i>斜体</i><p><a href=\"https://feishu.cn\">链接</a></p><p><span>企业百科是飞书提供的一款知识管理工具,通过企业百科可以帮助企业将分散的知识信息进行聚合,并通过UGC的方式,促进企业知识的保鲜和流通</span></p> 397 func (builder *EntityBuilder) RichText(richText string) *EntityBuilder { 398 builder.richText = richText 399 builder.richTextFlag = true 400 return builder 401 } 402 403 func (builder *EntityBuilder) Build() *Entity { 404 req := &Entity{} 405 if builder.idFlag { 406 req.Id = &builder.id 407 408 } 409 if builder.mainKeysFlag { 410 req.MainKeys = builder.mainKeys 411 } 412 413 if builder.aliasesFlag { 414 req.Aliases = builder.aliases 415 } 416 if builder.descriptionFlag { 417 req.Description = &builder.description 418 419 } 420 if builder.createTimeFlag { 421 req.CreateTime = &builder.createTime 422 423 } 424 if builder.updateTimeFlag { 425 req.UpdateTime = &builder.updateTime 426 427 } 428 if builder.relatedMetaFlag { 429 req.RelatedMeta = builder.relatedMeta 430 } 431 if builder.categoriesFlag { 432 req.Categories = builder.categories 433 } 434 if builder.statisticsFlag { 435 req.Statistics = builder.statistics 436 } 437 if builder.outerInfoFlag { 438 req.OuterInfo = builder.outerInfo 439 } 440 if builder.richTextFlag { 441 req.RichText = &builder.richText 442 443 } 444 return req 445 } 446 447 type MatchInfo struct { 448 EntityId *string `json:"entity_id,omitempty"` // 词条 ID 449 Type *int `json:"type,omitempty"` // 命中的字段 450 } 451 452 type MatchInfoBuilder struct { 453 entityId string // 词条 ID 454 entityIdFlag bool 455 type_ int // 命中的字段 456 typeFlag bool 457 } 458 459 func NewMatchInfoBuilder() *MatchInfoBuilder { 460 builder := &MatchInfoBuilder{} 461 return builder 462 } 463 464 // 词条 ID 465 // 466 // 示例值:enterprise_34809584 467 func (builder *MatchInfoBuilder) EntityId(entityId string) *MatchInfoBuilder { 468 builder.entityId = entityId 469 builder.entityIdFlag = true 470 return builder 471 } 472 473 // 命中的字段 474 // 475 // 示例值:0 476 func (builder *MatchInfoBuilder) Type(type_ int) *MatchInfoBuilder { 477 builder.type_ = type_ 478 builder.typeFlag = true 479 return builder 480 } 481 482 func (builder *MatchInfoBuilder) Build() *MatchInfo { 483 req := &MatchInfo{} 484 if builder.entityIdFlag { 485 req.EntityId = &builder.entityId 486 487 } 488 if builder.typeFlag { 489 req.Type = &builder.type_ 490 491 } 492 return req 493 } 494 495 type OuterInfo struct { 496 Provider *string `json:"provider,omitempty"` // 外部系统(不能包含中横线 "-") 497 OuterId *string `json:"outer_id,omitempty"` // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-") 498 } 499 500 type OuterInfoBuilder struct { 501 provider string // 外部系统(不能包含中横线 "-") 502 providerFlag bool 503 outerId string // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-") 504 outerIdFlag bool 505 } 506 507 func NewOuterInfoBuilder() *OuterInfoBuilder { 508 builder := &OuterInfoBuilder{} 509 return builder 510 } 511 512 // 外部系统(不能包含中横线 "-") 513 // 514 // 示例值:星云 515 func (builder *OuterInfoBuilder) Provider(provider string) *OuterInfoBuilder { 516 builder.provider = provider 517 builder.providerFlag = true 518 return builder 519 } 520 521 // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-") 522 // 523 // 示例值:client_6539i3498d 524 func (builder *OuterInfoBuilder) OuterId(outerId string) *OuterInfoBuilder { 525 builder.outerId = outerId 526 builder.outerIdFlag = true 527 return builder 528 } 529 530 func (builder *OuterInfoBuilder) Build() *OuterInfo { 531 req := &OuterInfo{} 532 if builder.providerFlag { 533 req.Provider = &builder.provider 534 535 } 536 if builder.outerIdFlag { 537 req.OuterId = &builder.outerId 538 539 } 540 return req 541 } 542 543 type Phrase struct { 544 Name *string `json:"name,omitempty"` // 识别到的关键词 545 EntityIds []string `json:"entity_ids,omitempty"` // 对应的词条 ID 546 Span *Span `json:"span,omitempty"` // 词条所在位置 547 } 548 549 type PhraseBuilder struct { 550 name string // 识别到的关键词 551 nameFlag bool 552 entityIds []string // 对应的词条 ID 553 entityIdsFlag bool 554 span *Span // 词条所在位置 555 spanFlag bool 556 } 557 558 func NewPhraseBuilder() *PhraseBuilder { 559 builder := &PhraseBuilder{} 560 return builder 561 } 562 563 // 识别到的关键词 564 // 565 // 示例值:企业百科 566 func (builder *PhraseBuilder) Name(name string) *PhraseBuilder { 567 builder.name = name 568 builder.nameFlag = true 569 return builder 570 } 571 572 // 对应的词条 ID 573 // 574 // 示例值: 575 func (builder *PhraseBuilder) EntityIds(entityIds []string) *PhraseBuilder { 576 builder.entityIds = entityIds 577 builder.entityIdsFlag = true 578 return builder 579 } 580 581 // 词条所在位置 582 // 583 // 示例值: 584 func (builder *PhraseBuilder) Span(span *Span) *PhraseBuilder { 585 builder.span = span 586 builder.spanFlag = true 587 return builder 588 } 589 590 func (builder *PhraseBuilder) Build() *Phrase { 591 req := &Phrase{} 592 if builder.nameFlag { 593 req.Name = &builder.name 594 595 } 596 if builder.entityIdsFlag { 597 req.EntityIds = builder.entityIds 598 } 599 if builder.spanFlag { 600 req.Span = builder.span 601 } 602 return req 603 } 604 605 type Referer struct { 606 Id *string `json:"id,omitempty"` // 对应相关信息 ID 607 Title *string `json:"title,omitempty"` // 对应相关信息的描述,如相关联系人的描述、相关链接的标题 608 Url *string `json:"url,omitempty"` // 链接地址 609 } 610 611 type RefererBuilder struct { 612 id string // 对应相关信息 ID 613 idFlag bool 614 title string // 对应相关信息的描述,如相关联系人的描述、相关链接的标题 615 titleFlag bool 616 url string // 链接地址 617 urlFlag bool 618 } 619 620 func NewRefererBuilder() *RefererBuilder { 621 builder := &RefererBuilder{} 622 return builder 623 } 624 625 // 对应相关信息 ID 626 // 627 // 示例值:格式请看请求体示例 628 func (builder *RefererBuilder) Id(id string) *RefererBuilder { 629 builder.id = id 630 builder.idFlag = true 631 return builder 632 } 633 634 // 对应相关信息的描述,如相关联系人的描述、相关链接的标题 635 // 636 // 示例值:企业百科帮助中心 637 func (builder *RefererBuilder) Title(title string) *RefererBuilder { 638 builder.title = title 639 builder.titleFlag = true 640 return builder 641 } 642 643 // 链接地址 644 // 645 // 示例值:https://www.feishu.cn/hc/zh-CN 646 func (builder *RefererBuilder) Url(url string) *RefererBuilder { 647 builder.url = url 648 builder.urlFlag = true 649 return builder 650 } 651 652 func (builder *RefererBuilder) Build() *Referer { 653 req := &Referer{} 654 if builder.idFlag { 655 req.Id = &builder.id 656 657 } 658 if builder.titleFlag { 659 req.Title = &builder.title 660 661 } 662 if builder.urlFlag { 663 req.Url = &builder.url 664 665 } 666 return req 667 } 668 669 type RelatedMeta struct { 670 Users []*Referer `json:"users,omitempty"` // 相关联系人 671 Chats []*Referer `json:"chats,omitempty"` // 相关服务中的相关公开群 672 Docs []*Referer `json:"docs,omitempty"` // 相关云文档 673 Oncalls []*Referer `json:"oncalls,omitempty"` // 相关服务中的相关值班号 674 Links []*Referer `json:"links,omitempty"` // 相关链接 675 Abbreviations []*Abbreviation `json:"abbreviations,omitempty"` // 相关词条 676 Classifications []*Classification `json:"classifications,omitempty"` // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。 677 } 678 679 type RelatedMetaBuilder struct { 680 users []*Referer // 相关联系人 681 usersFlag bool 682 chats []*Referer // 相关服务中的相关公开群 683 chatsFlag bool 684 docs []*Referer // 相关云文档 685 docsFlag bool 686 oncalls []*Referer // 相关服务中的相关值班号 687 oncallsFlag bool 688 links []*Referer // 相关链接 689 linksFlag bool 690 abbreviations []*Abbreviation // 相关词条 691 abbreviationsFlag bool 692 classifications []*Classification // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。 693 classificationsFlag bool 694 } 695 696 func NewRelatedMetaBuilder() *RelatedMetaBuilder { 697 builder := &RelatedMetaBuilder{} 698 return builder 699 } 700 701 // 相关联系人 702 // 703 // 示例值: 704 func (builder *RelatedMetaBuilder) Users(users []*Referer) *RelatedMetaBuilder { 705 builder.users = users 706 builder.usersFlag = true 707 return builder 708 } 709 710 // 相关服务中的相关公开群 711 // 712 // 示例值: 713 func (builder *RelatedMetaBuilder) Chats(chats []*Referer) *RelatedMetaBuilder { 714 builder.chats = chats 715 builder.chatsFlag = true 716 return builder 717 } 718 719 // 相关云文档 720 // 721 // 示例值: 722 func (builder *RelatedMetaBuilder) Docs(docs []*Referer) *RelatedMetaBuilder { 723 builder.docs = docs 724 builder.docsFlag = true 725 return builder 726 } 727 728 // 相关服务中的相关值班号 729 // 730 // 示例值: 731 func (builder *RelatedMetaBuilder) Oncalls(oncalls []*Referer) *RelatedMetaBuilder { 732 builder.oncalls = oncalls 733 builder.oncallsFlag = true 734 return builder 735 } 736 737 // 相关链接 738 // 739 // 示例值: 740 func (builder *RelatedMetaBuilder) Links(links []*Referer) *RelatedMetaBuilder { 741 builder.links = links 742 builder.linksFlag = true 743 return builder 744 } 745 746 // 相关词条 747 // 748 // 示例值: 749 func (builder *RelatedMetaBuilder) Abbreviations(abbreviations []*Abbreviation) *RelatedMetaBuilder { 750 builder.abbreviations = abbreviations 751 builder.abbreviationsFlag = true 752 return builder 753 } 754 755 // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。 756 // 757 // 示例值: 758 func (builder *RelatedMetaBuilder) Classifications(classifications []*Classification) *RelatedMetaBuilder { 759 builder.classifications = classifications 760 builder.classificationsFlag = true 761 return builder 762 } 763 764 func (builder *RelatedMetaBuilder) Build() *RelatedMeta { 765 req := &RelatedMeta{} 766 if builder.usersFlag { 767 req.Users = builder.users 768 } 769 if builder.chatsFlag { 770 req.Chats = builder.chats 771 } 772 if builder.docsFlag { 773 req.Docs = builder.docs 774 } 775 if builder.oncallsFlag { 776 req.Oncalls = builder.oncalls 777 } 778 if builder.linksFlag { 779 req.Links = builder.links 780 } 781 if builder.abbreviationsFlag { 782 req.Abbreviations = builder.abbreviations 783 } 784 if builder.classificationsFlag { 785 req.Classifications = builder.classifications 786 } 787 return req 788 } 789 790 type Span struct { 791 Start *int `json:"start,omitempty"` // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8) 792 End *int `json:"end,omitempty"` // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8) 793 } 794 795 type SpanBuilder struct { 796 start int // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8) 797 startFlag bool 798 end int // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8) 799 endFlag bool 800 } 801 802 func NewSpanBuilder() *SpanBuilder { 803 builder := &SpanBuilder{} 804 return builder 805 } 806 807 // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8) 808 // 809 // 示例值:0 810 func (builder *SpanBuilder) Start(start int) *SpanBuilder { 811 builder.start = start 812 builder.startFlag = true 813 return builder 814 } 815 816 // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8) 817 // 818 // 示例值:4 819 func (builder *SpanBuilder) End(end int) *SpanBuilder { 820 builder.end = end 821 builder.endFlag = true 822 return builder 823 } 824 825 func (builder *SpanBuilder) Build() *Span { 826 req := &Span{} 827 if builder.startFlag { 828 req.Start = &builder.start 829 830 } 831 if builder.endFlag { 832 req.End = &builder.end 833 834 } 835 return req 836 } 837 838 type Statistics struct { 839 LikeCount *int `json:"like_count,omitempty"` // 累计点赞 840 DislikeCount *int `json:"dislike_count,omitempty"` // 当前词条版本收到的负反馈数量 841 } 842 843 type StatisticsBuilder struct { 844 likeCount int // 累计点赞 845 likeCountFlag bool 846 dislikeCount int // 当前词条版本收到的负反馈数量 847 dislikeCountFlag bool 848 } 849 850 func NewStatisticsBuilder() *StatisticsBuilder { 851 builder := &StatisticsBuilder{} 852 return builder 853 } 854 855 // 累计点赞 856 // 857 // 示例值:55 858 func (builder *StatisticsBuilder) LikeCount(likeCount int) *StatisticsBuilder { 859 builder.likeCount = likeCount 860 builder.likeCountFlag = true 861 return builder 862 } 863 864 // 当前词条版本收到的负反馈数量 865 // 866 // 示例值:3 867 func (builder *StatisticsBuilder) DislikeCount(dislikeCount int) *StatisticsBuilder { 868 builder.dislikeCount = dislikeCount 869 builder.dislikeCountFlag = true 870 return builder 871 } 872 873 func (builder *StatisticsBuilder) Build() *Statistics { 874 req := &Statistics{} 875 if builder.likeCountFlag { 876 req.LikeCount = &builder.likeCount 877 878 } 879 if builder.dislikeCountFlag { 880 req.DislikeCount = &builder.dislikeCount 881 882 } 883 return req 884 } 885 886 type Term struct { 887 Key *string `json:"key,omitempty"` // 名称的值 888 DisplayStatus *DisplayStatus `json:"display_status,omitempty"` // 名称展示范围 889 } 890 891 type TermBuilder struct { 892 key string // 名称的值 893 keyFlag bool 894 displayStatus *DisplayStatus // 名称展示范围 895 displayStatusFlag bool 896 } 897 898 func NewTermBuilder() *TermBuilder { 899 builder := &TermBuilder{} 900 return builder 901 } 902 903 // 名称的值 904 // 905 // 示例值:企业百科 906 func (builder *TermBuilder) Key(key string) *TermBuilder { 907 builder.key = key 908 builder.keyFlag = true 909 return builder 910 } 911 912 // 名称展示范围 913 // 914 // 示例值: 915 func (builder *TermBuilder) DisplayStatus(displayStatus *DisplayStatus) *TermBuilder { 916 builder.displayStatus = displayStatus 917 builder.displayStatusFlag = true 918 return builder 919 } 920 921 func (builder *TermBuilder) Build() *Term { 922 req := &Term{} 923 if builder.keyFlag { 924 req.Key = &builder.key 925 926 } 927 if builder.displayStatusFlag { 928 req.DisplayStatus = builder.displayStatus 929 } 930 return req 931 } 932 933 type ListClassificationReqBuilder struct { 934 apiReq *larkcore.ApiReq 935 limit int // 最大返回多少记录,当使用迭代器访问时才有效 936 } 937 938 func NewListClassificationReqBuilder() *ListClassificationReqBuilder { 939 builder := &ListClassificationReqBuilder{} 940 builder.apiReq = &larkcore.ApiReq{ 941 PathParams: larkcore.PathParams{}, 942 QueryParams: larkcore.QueryParams{}, 943 } 944 return builder 945 } 946 947 // 最大返回多少记录,当使用迭代器访问时才有效 948 func (builder *ListClassificationReqBuilder) Limit(limit int) *ListClassificationReqBuilder { 949 builder.limit = limit 950 return builder 951 } 952 953 // 分页大小 954 // 955 // 示例值:20 956 func (builder *ListClassificationReqBuilder) PageSize(pageSize int) *ListClassificationReqBuilder { 957 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 958 return builder 959 } 960 961 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 962 // 963 // 示例值:408ecac018b2e3518db37275e812aad7bb8ad3e755fc886f322ac6c430ba 964 func (builder *ListClassificationReqBuilder) PageToken(pageToken string) *ListClassificationReqBuilder { 965 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 966 return builder 967 } 968 969 func (builder *ListClassificationReqBuilder) Build() *ListClassificationReq { 970 req := &ListClassificationReq{} 971 req.apiReq = &larkcore.ApiReq{} 972 req.Limit = builder.limit 973 req.apiReq.QueryParams = builder.apiReq.QueryParams 974 return req 975 } 976 977 type ListClassificationReq struct { 978 apiReq *larkcore.ApiReq 979 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 980 981 } 982 983 type ListClassificationRespData struct { 984 Items []*Classification `json:"items,omitempty"` // 分类 985 PageToken *string `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空 986 } 987 988 type ListClassificationResp struct { 989 *larkcore.ApiResp `json:"-"` 990 larkcore.CodeError 991 Data *ListClassificationRespData `json:"data"` // 业务数据 992 } 993 994 func (resp *ListClassificationResp) Success() bool { 995 return resp.Code == 0 996 } 997 998 type CreateDraftReqBuilder struct { 999 apiReq *larkcore.ApiReq 1000 entity *Entity 1001 } 1002 1003 func NewCreateDraftReqBuilder() *CreateDraftReqBuilder { 1004 builder := &CreateDraftReqBuilder{} 1005 builder.apiReq = &larkcore.ApiReq{ 1006 PathParams: larkcore.PathParams{}, 1007 QueryParams: larkcore.QueryParams{}, 1008 } 1009 return builder 1010 } 1011 1012 // 此次调用中使用的用户ID的类型 1013 // 1014 // 示例值: 1015 func (builder *CreateDraftReqBuilder) UserIdType(userIdType string) *CreateDraftReqBuilder { 1016 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1017 return builder 1018 } 1019 1020 // 草稿并非百科词条,而是指通过 API 发起创建新词条或更新现有词条的申请。百科管理员审核通过后,草稿将变为新的词条或覆盖已有词条。 1021 func (builder *CreateDraftReqBuilder) Entity(entity *Entity) *CreateDraftReqBuilder { 1022 builder.entity = entity 1023 return builder 1024 } 1025 1026 func (builder *CreateDraftReqBuilder) Build() *CreateDraftReq { 1027 req := &CreateDraftReq{} 1028 req.apiReq = &larkcore.ApiReq{} 1029 req.apiReq.QueryParams = builder.apiReq.QueryParams 1030 req.apiReq.Body = builder.entity 1031 return req 1032 } 1033 1034 type CreateDraftReq struct { 1035 apiReq *larkcore.ApiReq 1036 Entity *Entity `body:""` 1037 } 1038 1039 type CreateDraftRespData struct { 1040 Draft *Draft `json:"draft,omitempty"` // 草稿信息 1041 } 1042 1043 type CreateDraftResp struct { 1044 *larkcore.ApiResp `json:"-"` 1045 larkcore.CodeError 1046 Data *CreateDraftRespData `json:"data"` // 业务数据 1047 } 1048 1049 func (resp *CreateDraftResp) Success() bool { 1050 return resp.Code == 0 1051 } 1052 1053 type UpdateDraftReqBuilder struct { 1054 apiReq *larkcore.ApiReq 1055 entity *Entity 1056 } 1057 1058 func NewUpdateDraftReqBuilder() *UpdateDraftReqBuilder { 1059 builder := &UpdateDraftReqBuilder{} 1060 builder.apiReq = &larkcore.ApiReq{ 1061 PathParams: larkcore.PathParams{}, 1062 QueryParams: larkcore.QueryParams{}, 1063 } 1064 return builder 1065 } 1066 1067 // 草稿 ID 1068 // 1069 // 示例值:5347 1070 func (builder *UpdateDraftReqBuilder) DraftId(draftId string) *UpdateDraftReqBuilder { 1071 builder.apiReq.PathParams.Set("draft_id", fmt.Sprint(draftId)) 1072 return builder 1073 } 1074 1075 // 此次调用中使用的用户ID的类型 1076 // 1077 // 示例值: 1078 func (builder *UpdateDraftReqBuilder) UserIdType(userIdType string) *UpdateDraftReqBuilder { 1079 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1080 return builder 1081 } 1082 1083 // 根据 draft_id 更新草稿内容,已审批的草稿无法编辑 1084 func (builder *UpdateDraftReqBuilder) Entity(entity *Entity) *UpdateDraftReqBuilder { 1085 builder.entity = entity 1086 return builder 1087 } 1088 1089 func (builder *UpdateDraftReqBuilder) Build() *UpdateDraftReq { 1090 req := &UpdateDraftReq{} 1091 req.apiReq = &larkcore.ApiReq{} 1092 req.apiReq.PathParams = builder.apiReq.PathParams 1093 req.apiReq.QueryParams = builder.apiReq.QueryParams 1094 req.apiReq.Body = builder.entity 1095 return req 1096 } 1097 1098 type UpdateDraftReq struct { 1099 apiReq *larkcore.ApiReq 1100 Entity *Entity `body:""` 1101 } 1102 1103 type UpdateDraftRespData struct { 1104 Draft *Draft `json:"draft,omitempty"` // 草稿 1105 } 1106 1107 type UpdateDraftResp struct { 1108 *larkcore.ApiResp `json:"-"` 1109 larkcore.CodeError 1110 Data *UpdateDraftRespData `json:"data"` // 业务数据 1111 } 1112 1113 func (resp *UpdateDraftResp) Success() bool { 1114 return resp.Code == 0 1115 } 1116 1117 type CreateEntityReqBuilder struct { 1118 apiReq *larkcore.ApiReq 1119 entity *Entity 1120 } 1121 1122 func NewCreateEntityReqBuilder() *CreateEntityReqBuilder { 1123 builder := &CreateEntityReqBuilder{} 1124 builder.apiReq = &larkcore.ApiReq{ 1125 PathParams: larkcore.PathParams{}, 1126 QueryParams: larkcore.QueryParams{}, 1127 } 1128 return builder 1129 } 1130 1131 // 此次调用中使用的用户ID的类型 1132 // 1133 // 示例值: 1134 func (builder *CreateEntityReqBuilder) UserIdType(userIdType string) *CreateEntityReqBuilder { 1135 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1136 return builder 1137 } 1138 1139 // 通过此接口创建的词条,不需要百科管理员审核可直接写入词库,请慎重使用【租户管理员请慎重审批】 1140 func (builder *CreateEntityReqBuilder) Entity(entity *Entity) *CreateEntityReqBuilder { 1141 builder.entity = entity 1142 return builder 1143 } 1144 1145 func (builder *CreateEntityReqBuilder) Build() *CreateEntityReq { 1146 req := &CreateEntityReq{} 1147 req.apiReq = &larkcore.ApiReq{} 1148 req.apiReq.QueryParams = builder.apiReq.QueryParams 1149 req.apiReq.Body = builder.entity 1150 return req 1151 } 1152 1153 type CreateEntityReq struct { 1154 apiReq *larkcore.ApiReq 1155 Entity *Entity `body:""` 1156 } 1157 1158 type CreateEntityRespData struct { 1159 Entity *Entity `json:"entity,omitempty"` // 词条信息 1160 } 1161 1162 type CreateEntityResp struct { 1163 *larkcore.ApiResp `json:"-"` 1164 larkcore.CodeError 1165 Data *CreateEntityRespData `json:"data"` // 业务数据 1166 } 1167 1168 func (resp *CreateEntityResp) Success() bool { 1169 return resp.Code == 0 1170 } 1171 1172 type GetEntityReqBuilder struct { 1173 apiReq *larkcore.ApiReq 1174 } 1175 1176 func NewGetEntityReqBuilder() *GetEntityReqBuilder { 1177 builder := &GetEntityReqBuilder{} 1178 builder.apiReq = &larkcore.ApiReq{ 1179 PathParams: larkcore.PathParams{}, 1180 QueryParams: larkcore.QueryParams{}, 1181 } 1182 return builder 1183 } 1184 1185 // 词条 ID 1186 // 1187 // 示例值:enterprise_515879 1188 func (builder *GetEntityReqBuilder) EntityId(entityId string) *GetEntityReqBuilder { 1189 builder.apiReq.PathParams.Set("entity_id", fmt.Sprint(entityId)) 1190 return builder 1191 } 1192 1193 // 外部系统 1194 // 1195 // 示例值:星云 1196 func (builder *GetEntityReqBuilder) Provider(provider string) *GetEntityReqBuilder { 1197 builder.apiReq.QueryParams.Set("provider", fmt.Sprint(provider)) 1198 return builder 1199 } 1200 1201 // 词条在外部系统中对应的唯一 ID 1202 // 1203 // 示例值:12345 1204 func (builder *GetEntityReqBuilder) OuterId(outerId string) *GetEntityReqBuilder { 1205 builder.apiReq.QueryParams.Set("outer_id", fmt.Sprint(outerId)) 1206 return builder 1207 } 1208 1209 // 此次调用中使用的用户ID的类型 1210 // 1211 // 示例值: 1212 func (builder *GetEntityReqBuilder) UserIdType(userIdType string) *GetEntityReqBuilder { 1213 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1214 return builder 1215 } 1216 1217 func (builder *GetEntityReqBuilder) Build() *GetEntityReq { 1218 req := &GetEntityReq{} 1219 req.apiReq = &larkcore.ApiReq{} 1220 req.apiReq.PathParams = builder.apiReq.PathParams 1221 req.apiReq.QueryParams = builder.apiReq.QueryParams 1222 return req 1223 } 1224 1225 type GetEntityReq struct { 1226 apiReq *larkcore.ApiReq 1227 } 1228 1229 type GetEntityRespData struct { 1230 Entity *Entity `json:"entity,omitempty"` // 实体词 1231 } 1232 1233 type GetEntityResp struct { 1234 *larkcore.ApiResp `json:"-"` 1235 larkcore.CodeError 1236 Data *GetEntityRespData `json:"data"` // 业务数据 1237 } 1238 1239 func (resp *GetEntityResp) Success() bool { 1240 return resp.Code == 0 1241 } 1242 1243 type HighlightEntityReqBodyBuilder struct { 1244 text string // 需要识别百科词条的内容(不超过1000字) 1245 textFlag bool 1246 } 1247 1248 func NewHighlightEntityReqBodyBuilder() *HighlightEntityReqBodyBuilder { 1249 builder := &HighlightEntityReqBodyBuilder{} 1250 return builder 1251 } 1252 1253 // 需要识别百科词条的内容(不超过1000字) 1254 // 1255 //示例值:企业百科是飞书提供的一款知识管理工具 1256 func (builder *HighlightEntityReqBodyBuilder) Text(text string) *HighlightEntityReqBodyBuilder { 1257 builder.text = text 1258 builder.textFlag = true 1259 return builder 1260 } 1261 1262 func (builder *HighlightEntityReqBodyBuilder) Build() *HighlightEntityReqBody { 1263 req := &HighlightEntityReqBody{} 1264 if builder.textFlag { 1265 req.Text = &builder.text 1266 } 1267 return req 1268 } 1269 1270 type HighlightEntityPathReqBodyBuilder struct { 1271 text string // 需要识别百科词条的内容(不超过1000字) 1272 textFlag bool 1273 } 1274 1275 func NewHighlightEntityPathReqBodyBuilder() *HighlightEntityPathReqBodyBuilder { 1276 builder := &HighlightEntityPathReqBodyBuilder{} 1277 return builder 1278 } 1279 1280 // 需要识别百科词条的内容(不超过1000字) 1281 // 1282 // 示例值:企业百科是飞书提供的一款知识管理工具 1283 func (builder *HighlightEntityPathReqBodyBuilder) Text(text string) *HighlightEntityPathReqBodyBuilder { 1284 builder.text = text 1285 builder.textFlag = true 1286 return builder 1287 } 1288 1289 func (builder *HighlightEntityPathReqBodyBuilder) Build() (*HighlightEntityReqBody, error) { 1290 req := &HighlightEntityReqBody{} 1291 if builder.textFlag { 1292 req.Text = &builder.text 1293 } 1294 return req, nil 1295 } 1296 1297 type HighlightEntityReqBuilder struct { 1298 apiReq *larkcore.ApiReq 1299 body *HighlightEntityReqBody 1300 } 1301 1302 func NewHighlightEntityReqBuilder() *HighlightEntityReqBuilder { 1303 builder := &HighlightEntityReqBuilder{} 1304 builder.apiReq = &larkcore.ApiReq{ 1305 PathParams: larkcore.PathParams{}, 1306 QueryParams: larkcore.QueryParams{}, 1307 } 1308 return builder 1309 } 1310 1311 // 传入一句话,智能识别句中对应的词条,并返回词条位置和 entity_id,可在外部系统中快速实现百科词条智能高亮 1312 func (builder *HighlightEntityReqBuilder) Body(body *HighlightEntityReqBody) *HighlightEntityReqBuilder { 1313 builder.body = body 1314 return builder 1315 } 1316 1317 func (builder *HighlightEntityReqBuilder) Build() *HighlightEntityReq { 1318 req := &HighlightEntityReq{} 1319 req.apiReq = &larkcore.ApiReq{} 1320 req.apiReq.Body = builder.body 1321 return req 1322 } 1323 1324 type HighlightEntityReqBody struct { 1325 Text *string `json:"text,omitempty"` // 需要识别百科词条的内容(不超过1000字) 1326 } 1327 1328 type HighlightEntityReq struct { 1329 apiReq *larkcore.ApiReq 1330 Body *HighlightEntityReqBody `body:""` 1331 } 1332 1333 type HighlightEntityRespData struct { 1334 Phrases []*Phrase `json:"phrases,omitempty"` // 识别到的词条信息 1335 } 1336 1337 type HighlightEntityResp struct { 1338 *larkcore.ApiResp `json:"-"` 1339 larkcore.CodeError 1340 Data *HighlightEntityRespData `json:"data"` // 业务数据 1341 } 1342 1343 func (resp *HighlightEntityResp) Success() bool { 1344 return resp.Code == 0 1345 } 1346 1347 type ListEntityReqBuilder struct { 1348 apiReq *larkcore.ApiReq 1349 limit int // 最大返回多少记录,当使用迭代器访问时才有效 1350 } 1351 1352 func NewListEntityReqBuilder() *ListEntityReqBuilder { 1353 builder := &ListEntityReqBuilder{} 1354 builder.apiReq = &larkcore.ApiReq{ 1355 PathParams: larkcore.PathParams{}, 1356 QueryParams: larkcore.QueryParams{}, 1357 } 1358 return builder 1359 } 1360 1361 // 最大返回多少记录,当使用迭代器访问时才有效 1362 func (builder *ListEntityReqBuilder) Limit(limit int) *ListEntityReqBuilder { 1363 builder.limit = limit 1364 return builder 1365 } 1366 1367 // 分页大小 1368 // 1369 // 示例值:20 1370 func (builder *ListEntityReqBuilder) PageSize(pageSize int) *ListEntityReqBuilder { 1371 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 1372 return builder 1373 } 1374 1375 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 1376 // 1377 // 示例值:b152fa6e6f62a291019a04c3a93f365f8ac641910506ff15ff4cad6534e087cb4ed8fa2c 1378 func (builder *ListEntityReqBuilder) PageToken(pageToken string) *ListEntityReqBuilder { 1379 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 1380 return builder 1381 } 1382 1383 // 相关外部系统【可用来过滤词条数据】 1384 // 1385 // 示例值:星云 1386 func (builder *ListEntityReqBuilder) Provider(provider string) *ListEntityReqBuilder { 1387 builder.apiReq.QueryParams.Set("provider", fmt.Sprint(provider)) 1388 return builder 1389 } 1390 1391 // 此次调用中使用的用户ID的类型 1392 // 1393 // 示例值: 1394 func (builder *ListEntityReqBuilder) UserIdType(userIdType string) *ListEntityReqBuilder { 1395 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1396 return builder 1397 } 1398 1399 func (builder *ListEntityReqBuilder) Build() *ListEntityReq { 1400 req := &ListEntityReq{} 1401 req.apiReq = &larkcore.ApiReq{} 1402 req.Limit = builder.limit 1403 req.apiReq.QueryParams = builder.apiReq.QueryParams 1404 return req 1405 } 1406 1407 type ListEntityReq struct { 1408 apiReq *larkcore.ApiReq 1409 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 1410 1411 } 1412 1413 type ListEntityRespData struct { 1414 Entities []*Entity `json:"entities,omitempty"` // 词条列表 1415 PageToken *string `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空 1416 } 1417 1418 type ListEntityResp struct { 1419 *larkcore.ApiResp `json:"-"` 1420 larkcore.CodeError 1421 Data *ListEntityRespData `json:"data"` // 业务数据 1422 } 1423 1424 func (resp *ListEntityResp) Success() bool { 1425 return resp.Code == 0 1426 } 1427 1428 type MatchEntityReqBodyBuilder struct { 1429 word string // 搜索关键词,将与词条名、别名进行精准匹配 1430 wordFlag bool 1431 } 1432 1433 func NewMatchEntityReqBodyBuilder() *MatchEntityReqBodyBuilder { 1434 builder := &MatchEntityReqBodyBuilder{} 1435 return builder 1436 } 1437 1438 // 搜索关键词,将与词条名、别名进行精准匹配 1439 // 1440 //示例值:企业百科 1441 func (builder *MatchEntityReqBodyBuilder) Word(word string) *MatchEntityReqBodyBuilder { 1442 builder.word = word 1443 builder.wordFlag = true 1444 return builder 1445 } 1446 1447 func (builder *MatchEntityReqBodyBuilder) Build() *MatchEntityReqBody { 1448 req := &MatchEntityReqBody{} 1449 if builder.wordFlag { 1450 req.Word = &builder.word 1451 } 1452 return req 1453 } 1454 1455 type MatchEntityPathReqBodyBuilder struct { 1456 word string // 搜索关键词,将与词条名、别名进行精准匹配 1457 wordFlag bool 1458 } 1459 1460 func NewMatchEntityPathReqBodyBuilder() *MatchEntityPathReqBodyBuilder { 1461 builder := &MatchEntityPathReqBodyBuilder{} 1462 return builder 1463 } 1464 1465 // 搜索关键词,将与词条名、别名进行精准匹配 1466 // 1467 // 示例值:企业百科 1468 func (builder *MatchEntityPathReqBodyBuilder) Word(word string) *MatchEntityPathReqBodyBuilder { 1469 builder.word = word 1470 builder.wordFlag = true 1471 return builder 1472 } 1473 1474 func (builder *MatchEntityPathReqBodyBuilder) Build() (*MatchEntityReqBody, error) { 1475 req := &MatchEntityReqBody{} 1476 if builder.wordFlag { 1477 req.Word = &builder.word 1478 } 1479 return req, nil 1480 } 1481 1482 type MatchEntityReqBuilder struct { 1483 apiReq *larkcore.ApiReq 1484 body *MatchEntityReqBody 1485 } 1486 1487 func NewMatchEntityReqBuilder() *MatchEntityReqBuilder { 1488 builder := &MatchEntityReqBuilder{} 1489 builder.apiReq = &larkcore.ApiReq{ 1490 PathParams: larkcore.PathParams{}, 1491 QueryParams: larkcore.QueryParams{}, 1492 } 1493 return builder 1494 } 1495 1496 // 将关键词与词条名、别名精准匹配,并返回对应的 词条 ID 1497 func (builder *MatchEntityReqBuilder) Body(body *MatchEntityReqBody) *MatchEntityReqBuilder { 1498 builder.body = body 1499 return builder 1500 } 1501 1502 func (builder *MatchEntityReqBuilder) Build() *MatchEntityReq { 1503 req := &MatchEntityReq{} 1504 req.apiReq = &larkcore.ApiReq{} 1505 req.apiReq.Body = builder.body 1506 return req 1507 } 1508 1509 type MatchEntityReqBody struct { 1510 Word *string `json:"word,omitempty"` // 搜索关键词,将与词条名、别名进行精准匹配 1511 } 1512 1513 type MatchEntityReq struct { 1514 apiReq *larkcore.ApiReq 1515 Body *MatchEntityReqBody `body:""` 1516 } 1517 1518 type MatchEntityRespData struct { 1519 Results []*MatchInfo `json:"results,omitempty"` // 搜索结果 1520 } 1521 1522 type MatchEntityResp struct { 1523 *larkcore.ApiResp `json:"-"` 1524 larkcore.CodeError 1525 Data *MatchEntityRespData `json:"data"` // 业务数据 1526 } 1527 1528 func (resp *MatchEntityResp) Success() bool { 1529 return resp.Code == 0 1530 } 1531 1532 type SearchEntityReqBodyBuilder struct { 1533 query string // 搜索关键词 1534 queryFlag bool 1535 } 1536 1537 func NewSearchEntityReqBodyBuilder() *SearchEntityReqBodyBuilder { 1538 builder := &SearchEntityReqBodyBuilder{} 1539 return builder 1540 } 1541 1542 // 搜索关键词 1543 // 1544 //示例值:百科 1545 func (builder *SearchEntityReqBodyBuilder) Query(query string) *SearchEntityReqBodyBuilder { 1546 builder.query = query 1547 builder.queryFlag = true 1548 return builder 1549 } 1550 1551 func (builder *SearchEntityReqBodyBuilder) Build() *SearchEntityReqBody { 1552 req := &SearchEntityReqBody{} 1553 if builder.queryFlag { 1554 req.Query = &builder.query 1555 } 1556 return req 1557 } 1558 1559 type SearchEntityPathReqBodyBuilder struct { 1560 query string // 搜索关键词 1561 queryFlag bool 1562 } 1563 1564 func NewSearchEntityPathReqBodyBuilder() *SearchEntityPathReqBodyBuilder { 1565 builder := &SearchEntityPathReqBodyBuilder{} 1566 return builder 1567 } 1568 1569 // 搜索关键词 1570 // 1571 // 示例值:百科 1572 func (builder *SearchEntityPathReqBodyBuilder) Query(query string) *SearchEntityPathReqBodyBuilder { 1573 builder.query = query 1574 builder.queryFlag = true 1575 return builder 1576 } 1577 1578 func (builder *SearchEntityPathReqBodyBuilder) Build() (*SearchEntityReqBody, error) { 1579 req := &SearchEntityReqBody{} 1580 if builder.queryFlag { 1581 req.Query = &builder.query 1582 } 1583 return req, nil 1584 } 1585 1586 type SearchEntityReqBuilder struct { 1587 apiReq *larkcore.ApiReq 1588 body *SearchEntityReqBody 1589 limit int // 最大返回多少记录,当使用迭代器访问时才有效 1590 } 1591 1592 func NewSearchEntityReqBuilder() *SearchEntityReqBuilder { 1593 builder := &SearchEntityReqBuilder{} 1594 builder.apiReq = &larkcore.ApiReq{ 1595 PathParams: larkcore.PathParams{}, 1596 QueryParams: larkcore.QueryParams{}, 1597 } 1598 return builder 1599 } 1600 1601 // 最大返回多少记录,当使用迭代器访问时才有效 1602 func (builder *SearchEntityReqBuilder) Limit(limit int) *SearchEntityReqBuilder { 1603 builder.limit = limit 1604 return builder 1605 } 1606 1607 // 1608 // 1609 // 示例值:b152fa6e6f62a291019a04c3a93f365f8ac641910506ff15ff4cad6534e087cb4ed8fa2c 1610 func (builder *SearchEntityReqBuilder) PageToken(pageToken string) *SearchEntityReqBuilder { 1611 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 1612 return builder 1613 } 1614 1615 // 1616 // 1617 // 示例值:10 1618 func (builder *SearchEntityReqBuilder) PageSize(pageSize int) *SearchEntityReqBuilder { 1619 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 1620 return builder 1621 } 1622 1623 // 此次调用中使用的用户ID的类型 1624 // 1625 // 示例值: 1626 func (builder *SearchEntityReqBuilder) UserIdType(userIdType string) *SearchEntityReqBuilder { 1627 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1628 return builder 1629 } 1630 1631 // 传入关键词,与词条名、别名、释义等信息进行模糊匹配,返回搜到的词条信息 1632 func (builder *SearchEntityReqBuilder) Body(body *SearchEntityReqBody) *SearchEntityReqBuilder { 1633 builder.body = body 1634 return builder 1635 } 1636 1637 func (builder *SearchEntityReqBuilder) Build() *SearchEntityReq { 1638 req := &SearchEntityReq{} 1639 req.apiReq = &larkcore.ApiReq{} 1640 req.Limit = builder.limit 1641 req.apiReq.QueryParams = builder.apiReq.QueryParams 1642 req.apiReq.Body = builder.body 1643 return req 1644 } 1645 1646 type SearchEntityReqBody struct { 1647 Query *string `json:"query,omitempty"` // 搜索关键词 1648 } 1649 1650 type SearchEntityReq struct { 1651 apiReq *larkcore.ApiReq 1652 Body *SearchEntityReqBody `body:""` 1653 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 1654 1655 } 1656 1657 type SearchEntityRespData struct { 1658 Entities []*Entity `json:"entities,omitempty"` // 搜索结果 1659 PageToken *string `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空 1660 } 1661 1662 type SearchEntityResp struct { 1663 *larkcore.ApiResp `json:"-"` 1664 larkcore.CodeError 1665 Data *SearchEntityRespData `json:"data"` // 业务数据 1666 } 1667 1668 func (resp *SearchEntityResp) Success() bool { 1669 return resp.Code == 0 1670 } 1671 1672 type UpdateEntityReqBuilder struct { 1673 apiReq *larkcore.ApiReq 1674 entity *Entity 1675 } 1676 1677 func NewUpdateEntityReqBuilder() *UpdateEntityReqBuilder { 1678 builder := &UpdateEntityReqBuilder{} 1679 builder.apiReq = &larkcore.ApiReq{ 1680 PathParams: larkcore.PathParams{}, 1681 QueryParams: larkcore.QueryParams{}, 1682 } 1683 return builder 1684 } 1685 1686 // 实体词 ID 1687 // 1688 // 示例值:enterprise_40217521 1689 func (builder *UpdateEntityReqBuilder) EntityId(entityId string) *UpdateEntityReqBuilder { 1690 builder.apiReq.PathParams.Set("entity_id", fmt.Sprint(entityId)) 1691 return builder 1692 } 1693 1694 // 此次调用中使用的用户ID的类型 1695 // 1696 // 示例值: 1697 func (builder *UpdateEntityReqBuilder) UserIdType(userIdType string) *UpdateEntityReqBuilder { 1698 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 1699 return builder 1700 } 1701 1702 // 通过此接口更新已有的词条,不需要百科管理员审核可直接写入词库,请慎重使用【租户管理员请慎重审批】 1703 func (builder *UpdateEntityReqBuilder) Entity(entity *Entity) *UpdateEntityReqBuilder { 1704 builder.entity = entity 1705 return builder 1706 } 1707 1708 func (builder *UpdateEntityReqBuilder) Build() *UpdateEntityReq { 1709 req := &UpdateEntityReq{} 1710 req.apiReq = &larkcore.ApiReq{} 1711 req.apiReq.PathParams = builder.apiReq.PathParams 1712 req.apiReq.QueryParams = builder.apiReq.QueryParams 1713 req.apiReq.Body = builder.entity 1714 return req 1715 } 1716 1717 type UpdateEntityReq struct { 1718 apiReq *larkcore.ApiReq 1719 Entity *Entity `body:""` 1720 } 1721 1722 type UpdateEntityRespData struct { 1723 Entity *Entity `json:"entity,omitempty"` // 词条信息 1724 } 1725 1726 type UpdateEntityResp struct { 1727 *larkcore.ApiResp `json:"-"` 1728 larkcore.CodeError 1729 Data *UpdateEntityRespData `json:"data"` // 业务数据 1730 } 1731 1732 func (resp *UpdateEntityResp) Success() bool { 1733 return resp.Code == 0 1734 } 1735 1736 type ListClassificationIterator struct { 1737 nextPageToken *string 1738 items []*Classification 1739 index int 1740 limit int 1741 ctx context.Context 1742 req *ListClassificationReq 1743 listFunc func(ctx context.Context, req *ListClassificationReq, options ...larkcore.RequestOptionFunc) (*ListClassificationResp, error) 1744 options []larkcore.RequestOptionFunc 1745 curlNum int 1746 } 1747 1748 func (iterator *ListClassificationIterator) Next() (bool, *Classification, error) { 1749 // 达到最大量,则返回 1750 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 1751 return false, nil, nil 1752 } 1753 1754 // 为0则拉取数据 1755 if iterator.index == 0 || iterator.index >= len(iterator.items) { 1756 if iterator.index != 0 && iterator.nextPageToken == nil { 1757 return false, nil, nil 1758 } 1759 if iterator.nextPageToken != nil { 1760 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 1761 } 1762 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 1763 if err != nil { 1764 return false, nil, err 1765 } 1766 1767 if resp.Code != 0 { 1768 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 1769 } 1770 1771 if len(resp.Data.Items) == 0 { 1772 return false, nil, nil 1773 } 1774 1775 iterator.nextPageToken = resp.Data.PageToken 1776 iterator.items = resp.Data.Items 1777 iterator.index = 0 1778 } 1779 1780 block := iterator.items[iterator.index] 1781 iterator.index++ 1782 iterator.curlNum++ 1783 return true, block, nil 1784 } 1785 1786 func (iterator *ListClassificationIterator) NextPageToken() *string { 1787 return iterator.nextPageToken 1788 } 1789 1790 type ListEntityIterator struct { 1791 nextPageToken *string 1792 items []*Entity 1793 index int 1794 limit int 1795 ctx context.Context 1796 req *ListEntityReq 1797 listFunc func(ctx context.Context, req *ListEntityReq, options ...larkcore.RequestOptionFunc) (*ListEntityResp, error) 1798 options []larkcore.RequestOptionFunc 1799 curlNum int 1800 } 1801 1802 func (iterator *ListEntityIterator) Next() (bool, *Entity, error) { 1803 // 达到最大量,则返回 1804 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 1805 return false, nil, nil 1806 } 1807 1808 // 为0则拉取数据 1809 if iterator.index == 0 || iterator.index >= len(iterator.items) { 1810 if iterator.index != 0 && iterator.nextPageToken == nil { 1811 return false, nil, nil 1812 } 1813 if iterator.nextPageToken != nil { 1814 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 1815 } 1816 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 1817 if err != nil { 1818 return false, nil, err 1819 } 1820 1821 if resp.Code != 0 { 1822 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 1823 } 1824 1825 if len(resp.Data.Entities) == 0 { 1826 return false, nil, nil 1827 } 1828 1829 iterator.nextPageToken = resp.Data.PageToken 1830 iterator.items = resp.Data.Entities 1831 iterator.index = 0 1832 } 1833 1834 block := iterator.items[iterator.index] 1835 iterator.index++ 1836 iterator.curlNum++ 1837 return true, block, nil 1838 } 1839 1840 func (iterator *ListEntityIterator) NextPageToken() *string { 1841 return iterator.nextPageToken 1842 } 1843 1844 type SearchEntityIterator struct { 1845 nextPageToken *string 1846 items []*Entity 1847 index int 1848 limit int 1849 ctx context.Context 1850 req *SearchEntityReq 1851 listFunc func(ctx context.Context, req *SearchEntityReq, options ...larkcore.RequestOptionFunc) (*SearchEntityResp, error) 1852 options []larkcore.RequestOptionFunc 1853 curlNum int 1854 } 1855 1856 func (iterator *SearchEntityIterator) Next() (bool, *Entity, error) { 1857 // 达到最大量,则返回 1858 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 1859 return false, nil, nil 1860 } 1861 1862 // 为0则拉取数据 1863 if iterator.index == 0 || iterator.index >= len(iterator.items) { 1864 if iterator.index != 0 && iterator.nextPageToken == nil { 1865 return false, nil, nil 1866 } 1867 if iterator.nextPageToken != nil { 1868 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 1869 } 1870 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 1871 if err != nil { 1872 return false, nil, err 1873 } 1874 1875 if resp.Code != 0 { 1876 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 1877 } 1878 1879 if len(resp.Data.Entities) == 0 { 1880 return false, nil, nil 1881 } 1882 1883 iterator.nextPageToken = resp.Data.PageToken 1884 iterator.items = resp.Data.Entities 1885 iterator.index = 0 1886 } 1887 1888 block := iterator.items[iterator.index] 1889 iterator.index++ 1890 iterator.curlNum++ 1891 return true, block, nil 1892 } 1893 1894 func (iterator *SearchEntityIterator) NextPageToken() *string { 1895 return iterator.nextPageToken 1896 }