gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/card/model.go (about) 1 /* 2 * MIT License 3 * 4 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 5 * 6 * 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: 7 * 8 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 9 * 10 * 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. 11 */ 12 13 package larkcard 14 15 import ( 16 "encoding/json" 17 18 larkcore "gitee.com/larksuite/oapi-sdk-go/v3/core" 19 larkevent "gitee.com/larksuite/oapi-sdk-go/v3/event" 20 ) 21 22 const ( 23 TemplateBlue = "blue" 24 TemplateWathet = "wathet" 25 TemplateTurquoise = "turquoise" 26 TemplateGreen = "green" 27 TemplateYellow = "yellow" 28 TemplateOrange = "orange" 29 TemplateRed = "red" 30 TemplateCarmine = "carmine" 31 TemplateViolet = "violet" 32 TemplatePurple = "purple" 33 TemplateIndigo = "indigo" 34 TemplateGrey = "grey" 35 ) 36 37 type MessageCard struct { 38 Config_ *MessageCardConfig `json:"config,omitempty"` 39 Header_ *MessageCardHeader `json:"header,omitempty"` 40 Elements_ []MessageCardElement `json:"elements,omitempty"` 41 I18nElements_ *MessageCardI18nElements `json:"i18n_elements,omitempty"` 42 CardLink_ *MessageCardURL `json:"card_link,omitempty"` 43 } 44 45 func (m *MessageCard) String() (string, error) { 46 bs, err := json.Marshal(m) 47 if err != nil { 48 return "", err 49 } 50 return string(bs), nil 51 } 52 func NewMessageCard() *MessageCard { 53 return &MessageCard{} 54 } 55 56 func (card *MessageCard) Config(config *MessageCardConfig) *MessageCard { 57 card.Config_ = config 58 return card 59 } 60 61 func (card *MessageCard) Header(header *MessageCardHeader) *MessageCard { 62 card.Header_ = header 63 return card 64 } 65 66 func (card *MessageCard) Elements(elements []MessageCardElement) *MessageCard { 67 card.Elements_ = elements 68 return card 69 } 70 71 func (card *MessageCard) I18nElements(i18nElements *MessageCardI18nElements) *MessageCard { 72 card.I18nElements_ = i18nElements 73 return card 74 } 75 76 func (card *MessageCard) CardLink(cardLink *MessageCardURL) *MessageCard { 77 card.CardLink_ = cardLink 78 return card 79 } 80 81 func (card *MessageCard) Build() *MessageCard { 82 return card 83 } 84 85 type MessageCardI18nElements struct { 86 ZhCN_ []MessageCardElement `json:"zh_cn,omitempty"` 87 EnUS_ []MessageCardElement `json:"en_us,omitempty"` 88 JaJP_ []MessageCardElement `json:"ja_jp,omitempty"` 89 } 90 91 func NewMessageCardI18nElements() *MessageCardI18nElements { 92 return &MessageCardI18nElements{} 93 } 94 95 func (i18nEle *MessageCardI18nElements) ZhCN(zhCn []MessageCardElement) *MessageCardI18nElements { 96 i18nEle.ZhCN_ = zhCn 97 return i18nEle 98 } 99 100 func (i18nEle *MessageCardI18nElements) EnUS(enUS []MessageCardElement) *MessageCardI18nElements { 101 i18nEle.EnUS_ = enUS 102 return i18nEle 103 } 104 105 func (i18nEle *MessageCardI18nElements) JaJP(jaJP []MessageCardElement) *MessageCardI18nElements { 106 i18nEle.JaJP_ = jaJP 107 return i18nEle 108 } 109 110 func (i18nEle *MessageCardI18nElements) Build() *MessageCardI18nElements { 111 return i18nEle 112 } 113 114 type MessageCardElement interface { 115 Tag() string 116 MarshalJSON() ([]byte, error) 117 } 118 119 type MessageCardActionElement interface { 120 MessageCardElement 121 IsAction() 122 } 123 124 type MessageCardExtraElement interface { 125 MessageCardElement 126 IsExtra() 127 } 128 129 type MessageCardNoteElement interface { 130 MessageCardElement 131 IsNote() 132 } 133 134 type MessageCardHr struct { 135 } 136 137 func NewMessageCardHr() *MessageCardHr { 138 return &MessageCardHr{} 139 } 140 141 func (hr *MessageCardHr) Build() *MessageCardHr { 142 return hr 143 } 144 145 func (m *MessageCardHr) Tag() string { 146 return "hr" 147 } 148 149 func (m *MessageCardHr) MarshalJSON() ([]byte, error) { 150 return messageCardElementJson(m) 151 } 152 153 func messageCardElementJson(e MessageCardElement) ([]byte, error) { 154 data, err := larkcore.StructToMap(e) 155 if err != nil { 156 return nil, err 157 } 158 data["tag"] = e.Tag() 159 return json.Marshal(data) 160 } 161 162 type MessageCardMarkdown struct { 163 Content_ string `json:"content,omitempty"` 164 Href_ map[string]*MessageCardURL `json:"href,omitempty"` 165 } 166 167 func NewMessageCardMarkdown() *MessageCardMarkdown { 168 return &MessageCardMarkdown{} 169 } 170 171 func (markDown *MessageCardMarkdown) Content(content string) *MessageCardMarkdown { 172 markDown.Content_ = content 173 return markDown 174 } 175 176 func (markDown *MessageCardMarkdown) Href(href map[string]*MessageCardURL) *MessageCardMarkdown { 177 markDown.Href_ = href 178 return markDown 179 } 180 181 func (markDown *MessageCardMarkdown) Build() *MessageCardMarkdown { 182 return markDown 183 } 184 185 func (m *MessageCardMarkdown) Tag() string { 186 return "markdown" 187 } 188 189 func (m *MessageCardMarkdown) MarshalJSON() ([]byte, error) { 190 return messageCardElementJson(m) 191 } 192 193 type MessageCardDiv struct { 194 Text_ MessageCardText `json:"text,omitempty"` 195 Fields_ []*MessageCardField `json:"fields,omitempty"` 196 Extra_ MessageCardExtraElement `json:"extra,omitempty"` 197 } 198 199 func NewMessageCardDiv() *MessageCardDiv { 200 return &MessageCardDiv{} 201 } 202 203 func (div *MessageCardDiv) Text(text MessageCardText) *MessageCardDiv { 204 div.Text_ = text 205 return div 206 } 207 208 func (div *MessageCardDiv) Fields(fields []*MessageCardField) *MessageCardDiv { 209 div.Fields_ = fields 210 return div 211 } 212 213 func (div *MessageCardDiv) Extra(extra MessageCardExtraElement) *MessageCardDiv { 214 div.Extra_ = extra 215 return div 216 } 217 218 func (div *MessageCardDiv) Build() *MessageCardDiv { 219 return div 220 } 221 222 type MessageCardField struct { 223 IsShort_ bool `json:"is_short,omitempty"` 224 Text_ MessageCardText `json:"text,omitempty"` 225 } 226 227 func NewMessageCardField() *MessageCardField { 228 return &MessageCardField{} 229 } 230 231 func (field *MessageCardField) IsShort(isShort bool) *MessageCardField { 232 field.IsShort_ = isShort 233 return field 234 } 235 236 func (field *MessageCardField) Text(text MessageCardText) *MessageCardField { 237 field.Text_ = text 238 return field 239 } 240 241 func (field *MessageCardField) Build() *MessageCardField { 242 return field 243 } 244 245 func (m *MessageCardDiv) Tag() string { 246 return "div" 247 } 248 249 func (m *MessageCardDiv) MarshalJSON() ([]byte, error) { 250 return messageCardElementJson(m) 251 } 252 253 type MessageCardText interface { 254 MessageCardElement 255 Text() string 256 } 257 type MessageCardURL struct { 258 URL_ string `json:"url,omitempty"` 259 AndroidURL_ string `json:"android_url,omitempty"` 260 IOSURL_ string `json:"ios_url,omitempty"` 261 PCURL_ string `json:"pc_url,omitempty"` 262 } 263 264 func NewMessageCardURL() *MessageCardURL { 265 return &MessageCardURL{} 266 } 267 268 func (cardUrl *MessageCardURL) Url(url string) *MessageCardURL { 269 cardUrl.URL_ = url 270 return cardUrl 271 } 272 273 func (cardUrl *MessageCardURL) AndroidUrl(androidUrl string) *MessageCardURL { 274 cardUrl.AndroidURL_ = androidUrl 275 return cardUrl 276 } 277 278 func (cardUrl *MessageCardURL) IoSUrl(iOSUrl string) *MessageCardURL { 279 cardUrl.IOSURL_ = iOSUrl 280 return cardUrl 281 } 282 283 func (cardUrl *MessageCardURL) PcUrl(pcURL string) *MessageCardURL { 284 cardUrl.PCURL_ = pcURL 285 return cardUrl 286 } 287 288 func (cardUrl *MessageCardURL) Build() *MessageCardURL { 289 return cardUrl 290 } 291 292 type MessageCardConfig struct { 293 EnableForward_ *bool `json:"enable_forward,omitempty"` 294 UpdateMulti_ *bool `json:"update_multi,omitempty"` 295 WideScreenMode_ *bool `json:"wide_screen_mode,omitempty"` 296 } 297 298 func NewMessageCardConfig() *MessageCardConfig { 299 return &MessageCardConfig{} 300 } 301 302 func (config *MessageCardConfig) EnableForward(enableForward bool) *MessageCardConfig { 303 config.EnableForward_ = &enableForward 304 return config 305 } 306 307 func (config *MessageCardConfig) UpdateMulti(updateMulti bool) *MessageCardConfig { 308 config.UpdateMulti_ = &updateMulti 309 return config 310 } 311 312 func (config *MessageCardConfig) WideScreenMode(wideScreenMode bool) *MessageCardConfig { 313 config.WideScreenMode_ = &wideScreenMode 314 return config 315 } 316 317 func (config *MessageCardConfig) Build() *MessageCardConfig { 318 return config 319 } 320 321 type MessageCardHeader struct { 322 Template_ *string `json:"template,omitempty"` 323 Title_ *MessageCardPlainText `json:"title,omitempty"` 324 } 325 326 func NewMessageCardHeader() *MessageCardHeader { 327 return &MessageCardHeader{} 328 } 329 330 func (header *MessageCardHeader) Template(template string) *MessageCardHeader { 331 header.Template_ = &template 332 return header 333 } 334 335 func (header *MessageCardHeader) Title(title *MessageCardPlainText) *MessageCardHeader { 336 header.Title_ = title 337 return header 338 } 339 340 func (header *MessageCardHeader) Build() *MessageCardHeader { 341 return header 342 } 343 344 func (m *MessageCard) JSON() (string, error) { 345 bs, err := json.Marshal(m) 346 if err != nil { 347 return "", err 348 } 349 return string(bs), nil 350 } 351 352 type MessageCardPlainText struct { 353 Content_ string `json:"content,omitempty"` 354 Lines_ *int `json:"lines,omitempty"` 355 I18n_ *MessageCardPlainTextI18n `json:"i18n,omitempty"` 356 } 357 358 func NewMessageCardPlainText() *MessageCardPlainText { 359 return &MessageCardPlainText{} 360 } 361 362 func (plainText *MessageCardPlainText) Content(content string) *MessageCardPlainText { 363 plainText.Content_ = content 364 return plainText 365 } 366 367 func (plainText *MessageCardPlainText) Lines(lines int) *MessageCardPlainText { 368 plainText.Lines_ = &lines 369 return plainText 370 } 371 372 func (plainText *MessageCardPlainText) I18n(i18n *MessageCardPlainTextI18n) *MessageCardPlainText { 373 plainText.I18n_ = i18n 374 return plainText 375 } 376 377 func (plainText *MessageCardPlainText) Build() *MessageCardPlainText { 378 return plainText 379 } 380 381 func (m *MessageCardPlainText) Tag() string { 382 return "plain_text" 383 } 384 385 func (m *MessageCardPlainText) MarshalJSON() ([]byte, error) { 386 return messageCardElementJson(m) 387 } 388 389 func (m *MessageCardPlainText) Text() string { 390 return m.Content_ 391 } 392 393 func (m *MessageCardPlainText) IsExtra() { 394 } 395 396 func (m *MessageCardPlainText) IsNote() { 397 } 398 399 type MessageCardLarkMd struct { 400 Content_ string `json:"content,omitempty"` 401 } 402 403 func NewMessageCardLarkMd() *MessageCardLarkMd { 404 return &MessageCardLarkMd{} 405 } 406 407 func (md *MessageCardLarkMd) Content(content string) *MessageCardLarkMd { 408 md.Content_ = content 409 return md 410 } 411 412 func (md *MessageCardLarkMd) Build() *MessageCardLarkMd { 413 return md 414 } 415 416 func (m *MessageCardLarkMd) Tag() string { 417 return "lark_md" 418 } 419 420 func (m *MessageCardLarkMd) MarshalJSON() ([]byte, error) { 421 return messageCardElementJson(m) 422 } 423 424 func (m *MessageCardLarkMd) Text() string { 425 return m.Content_ 426 } 427 428 func (m *MessageCardLarkMd) IsExtra() { 429 } 430 431 func (m *MessageCardLarkMd) IsNote() { 432 } 433 434 type MessageCardImageModel string 435 436 const ( 437 MessageCardImageModelFitHorizontal MessageCardImageModel = "fit_horizontal" 438 MessageCardImageModelCropCenter MessageCardImageModel = "crop_center" 439 ) 440 441 func (m MessageCardImageModel) Ptr() *MessageCardImageModel { 442 return &m 443 } 444 445 type MessageCardImage struct { 446 Alt_ *MessageCardPlainText `json:"alt,omitempty"` 447 Title_ MessageCardText `json:"title,omitempty"` 448 ImgKey_ string `json:"img_key,omitempty"` 449 CustomWidth_ *int `json:"custom_width,omitempty"` 450 CompactWidth_ *bool `json:"compact_width,omitempty"` 451 Mode_ *MessageCardImageModel `json:"mode,omitempty"` 452 Preview_ *bool `json:"preview,omitempty"` 453 } 454 455 func NewMessageCardImage() *MessageCardImage { 456 return &MessageCardImage{} 457 } 458 459 func (image *MessageCardImage) Preview(preview bool) *MessageCardImage { 460 image.Preview_ = &preview 461 return image 462 } 463 464 func (image *MessageCardImage) Alt(alt *MessageCardPlainText) *MessageCardImage { 465 image.Alt_ = alt 466 return image 467 } 468 469 func (image *MessageCardImage) Title(title MessageCardText) *MessageCardImage { 470 image.Title_ = title 471 return image 472 } 473 474 func (image *MessageCardImage) ImgKey(imgKey string) *MessageCardImage { 475 image.ImgKey_ = imgKey 476 return image 477 } 478 479 func (image *MessageCardImage) CustomWidth(customWidth int) *MessageCardImage { 480 image.CustomWidth_ = &customWidth 481 return image 482 } 483 484 func (image *MessageCardImage) CompactWidth(compactWidth bool) *MessageCardImage { 485 image.CompactWidth_ = &compactWidth 486 return image 487 } 488 489 func (image *MessageCardImage) Mode(mode MessageCardImageModel) *MessageCardImage { 490 image.Mode_ = &mode 491 return image 492 } 493 494 func (image *MessageCardImage) Build() *MessageCardImage { 495 return image 496 } 497 498 func (m *MessageCardImage) Tag() string { 499 return "img" 500 } 501 502 func (m *MessageCardImage) MarshalJSON() ([]byte, error) { 503 return messageCardElementJson(m) 504 } 505 506 type MessageCardNote struct { 507 Elements_ []MessageCardNoteElement `json:"elements,omitempty"` 508 } 509 510 func NewMessageCardNote() *MessageCardNote { 511 return &MessageCardNote{} 512 } 513 514 func (note *MessageCardNote) Elements(elements []MessageCardNoteElement) *MessageCardNote { 515 note.Elements_ = elements 516 return note 517 } 518 519 func (note *MessageCardNote) Build() *MessageCardNote { 520 return note 521 } 522 523 func (m *MessageCardNote) Tag() string { 524 return "note" 525 } 526 527 func (m *MessageCardNote) MarshalJSON() ([]byte, error) { 528 return messageCardElementJson(m) 529 } 530 531 type MessageCardButtonType string 532 533 const ( 534 MessageCardButtonTypeDefault MessageCardButtonType = "default" 535 MessageCardButtonTypePrimary MessageCardButtonType = "primary" 536 MessageCardButtonTypeDanger MessageCardButtonType = "danger" 537 ) 538 539 func (bt MessageCardButtonType) Ptr() *MessageCardButtonType { 540 return &bt 541 } 542 543 type MessageCardActionConfirm struct { 544 Title_ *MessageCardPlainText `json:"title,omitempty"` 545 Text_ *MessageCardPlainText `json:"text,omitempty"` 546 } 547 548 func NewMessageCardActionConfirm() *MessageCardActionConfirm { 549 return &MessageCardActionConfirm{} 550 } 551 552 func (confirm *MessageCardActionConfirm) Title(title *MessageCardPlainText) *MessageCardActionConfirm { 553 confirm.Title_ = title 554 return confirm 555 } 556 557 func (confirm *MessageCardActionConfirm) Text(text *MessageCardPlainText) *MessageCardActionConfirm { 558 confirm.Text_ = text 559 return confirm 560 } 561 562 func (confirm *MessageCardActionConfirm) Build() *MessageCardActionConfirm { 563 return confirm 564 } 565 566 type MessageCardEmbedImage struct { 567 Alt_ *MessageCardPlainText `json:"alt,omitempty"` 568 ImgKey_ string `json:"img_key,omitempty"` 569 Mode_ *MessageCardImageModel `json:"mode,omitempty"` 570 Preview_ *bool `json:"preview,omitempty"` 571 } 572 573 func NewMessageCardEmbedImage() *MessageCardEmbedImage { 574 return &MessageCardEmbedImage{} 575 } 576 577 func (image *MessageCardEmbedImage) Alt(alt *MessageCardPlainText) *MessageCardEmbedImage { 578 image.Alt_ = alt 579 return image 580 } 581 582 func (image *MessageCardEmbedImage) ImgKey(imgKey string) *MessageCardEmbedImage { 583 image.ImgKey_ = imgKey 584 return image 585 } 586 587 func (image *MessageCardEmbedImage) Mode(mode *MessageCardImageModel) *MessageCardEmbedImage { 588 image.Mode_ = mode 589 return image 590 } 591 592 func (image *MessageCardEmbedImage) Preview(preview bool) *MessageCardEmbedImage { 593 image.Preview_ = &preview 594 return image 595 } 596 597 func (image *MessageCardEmbedImage) Build() *MessageCardEmbedImage { 598 return image 599 } 600 601 func (m *MessageCardEmbedImage) Tag() string { 602 return "img" 603 } 604 605 func (m *MessageCardEmbedImage) IsExtra() { 606 } 607 608 func (m *MessageCardEmbedImage) IsNote() { 609 } 610 611 func (m *MessageCardEmbedImage) MarshalJSON() ([]byte, error) { 612 return messageCardElementJson(m) 613 } 614 615 type MessageCardEmbedButton struct { 616 Text_ MessageCardText `json:"text,omitempty"` 617 URL_ *string `json:"url,omitempty"` 618 MultiURL_ *MessageCardURL `json:"multi_url,omitempty"` 619 Type_ *MessageCardButtonType `json:"type,omitempty"` 620 Value_ map[string]interface{} `json:"value,omitempty"` 621 Confirm_ *MessageCardActionConfirm `json:"confirm,omitempty"` 622 } 623 624 func NewMessageCardEmbedButton() *MessageCardEmbedButton { 625 return &MessageCardEmbedButton{} 626 } 627 628 func (m *MessageCardEmbedButton) Confirm(confirm *MessageCardActionConfirm) *MessageCardEmbedButton { 629 m.Confirm_ = confirm 630 return m 631 } 632 633 func (m *MessageCardEmbedButton) Value(value map[string]interface{}) *MessageCardEmbedButton { 634 m.Value_ = value 635 return m 636 } 637 638 func (m *MessageCardEmbedButton) Type(type_ MessageCardButtonType) *MessageCardEmbedButton { 639 m.Type_ = &type_ 640 return m 641 } 642 643 func (m *MessageCardEmbedButton) Text(text MessageCardText) *MessageCardEmbedButton { 644 m.Text_ = text 645 return m 646 } 647 648 func (m *MessageCardEmbedButton) Url(url string) *MessageCardEmbedButton { 649 m.URL_ = &url 650 return m 651 } 652 653 func (m *MessageCardEmbedButton) MultiUrl(multiURL *MessageCardURL) *MessageCardEmbedButton { 654 m.MultiURL_ = multiURL 655 return m 656 } 657 func (m *MessageCardEmbedButton) Build() *MessageCardEmbedButton { 658 return m 659 } 660 661 func (m *MessageCardEmbedButton) Tag() string { 662 return "button" 663 } 664 665 func (m *MessageCardEmbedButton) MarshalJSON() ([]byte, error) { 666 return messageCardElementJson(m) 667 } 668 669 func (m *MessageCardEmbedButton) IsAction() { 670 } 671 672 func (m *MessageCardEmbedButton) IsExtra() { 673 } 674 675 type MessageCardEmbedDatePickerBase struct { 676 InitialDate_ *string `json:"initial_date,omitempty"` 677 InitialTime_ *string `json:"initial_time,omitempty"` 678 InitialDatetime_ *string `json:"initial_datetime,omitempty"` 679 Placeholder_ *MessageCardPlainText `json:"placeholder,omitempty"` 680 Value_ map[string]interface{} `json:"value,omitempty"` 681 Confirm_ *MessageCardActionConfirm `json:"confirm,omitempty"` 682 } 683 684 func NewMessageCardEmbedDatePickerBase() *MessageCardEmbedDatePickerBase { 685 return &MessageCardEmbedDatePickerBase{} 686 } 687 688 func (picker *MessageCardEmbedDatePickerBase) InitialDate(initialDate string) *MessageCardEmbedDatePickerBase { 689 picker.InitialDate_ = &initialDate 690 return picker 691 } 692 693 func (picker *MessageCardEmbedDatePickerBase) InitialTime(initialTime string) *MessageCardEmbedDatePickerBase { 694 picker.InitialTime_ = &initialTime 695 return picker 696 } 697 func (picker *MessageCardEmbedDatePickerBase) InitialDatetime(initialDatetime string) *MessageCardEmbedDatePickerBase { 698 picker.InitialDatetime_ = &initialDatetime 699 return picker 700 } 701 func (picker *MessageCardEmbedDatePickerBase) Placeholder(placeholder *MessageCardPlainText) *MessageCardEmbedDatePickerBase { 702 picker.Placeholder_ = placeholder 703 return picker 704 } 705 func (picker *MessageCardEmbedDatePickerBase) Value(value map[string]interface{}) *MessageCardEmbedDatePickerBase { 706 picker.Value_ = value 707 return picker 708 } 709 710 func (picker *MessageCardEmbedDatePickerBase) Confirm(confirm *MessageCardActionConfirm) *MessageCardEmbedDatePickerBase { 711 picker.Confirm_ = confirm 712 return picker 713 } 714 715 func (picker *MessageCardEmbedDatePickerBase) Build() *MessageCardEmbedDatePickerBase { 716 return picker 717 } 718 719 func (m *MessageCardEmbedDatePickerBase) IsAction() { 720 } 721 722 func (m *MessageCardEmbedDatePickerBase) IsExtra() { 723 } 724 725 type MessageCardEmbedDatePicker struct { 726 *MessageCardEmbedDatePickerBase 727 } 728 729 func NewMessageCardEmbedDatePicker() *MessageCardEmbedDatePicker { 730 return &MessageCardEmbedDatePicker{} 731 } 732 733 func (m *MessageCardEmbedDatePicker) MessageCardEmbedDatePicker(base *MessageCardEmbedDatePickerBase) *MessageCardEmbedDatePicker { 734 m.MessageCardEmbedDatePickerBase = base 735 return m 736 } 737 738 func (m *MessageCardEmbedDatePicker) Tag() string { 739 return "date_picker" 740 } 741 742 func (m *MessageCardEmbedDatePicker) MarshalJSON() ([]byte, error) { 743 return messageCardElementJson(m) 744 } 745 746 type MessageCardEmbedPickerTime struct { 747 *MessageCardEmbedDatePickerBase 748 } 749 750 func NewMessageCardEmbedPickerTime() *MessageCardEmbedPickerTime { 751 return &MessageCardEmbedPickerTime{} 752 } 753 754 func (m *MessageCardEmbedPickerTime) MessageCardEmbedPickerTime(base *MessageCardEmbedDatePickerBase) *MessageCardEmbedPickerTime { 755 m.MessageCardEmbedDatePickerBase = base 756 return m 757 } 758 759 func (m *MessageCardEmbedPickerTime) Build() *MessageCardEmbedPickerTime { 760 return m 761 } 762 763 func (m *MessageCardEmbedPickerTime) Tag() string { 764 return "picker_time" 765 } 766 767 func (m *MessageCardEmbedPickerTime) MarshalJSON() ([]byte, error) { 768 return messageCardElementJson(m) 769 } 770 771 type MessageCardEmbedPickerDatetime struct { 772 *MessageCardEmbedDatePickerBase 773 } 774 775 func NewMessageCardEmbedPickerDatetime() *MessageCardEmbedPickerDatetime { 776 return &MessageCardEmbedPickerDatetime{} 777 } 778 779 func (m *MessageCardEmbedPickerDatetime) MessageCardEmbedPickerDatetime(base *MessageCardEmbedDatePickerBase) *MessageCardEmbedPickerDatetime { 780 m.MessageCardEmbedDatePickerBase = base 781 return m 782 } 783 func (m *MessageCardEmbedPickerDatetime) Build() *MessageCardEmbedPickerDatetime { 784 return m 785 } 786 func (m *MessageCardEmbedPickerDatetime) Tag() string { 787 return "picker_datetime" 788 } 789 790 func (m *MessageCardEmbedPickerDatetime) MarshalJSON() ([]byte, error) { 791 return messageCardElementJson(m) 792 } 793 794 type MessageCardEmbedSelectOption struct { 795 Text_ *MessageCardPlainText `json:"text,omitempty"` 796 Value_ string `json:"value,omitempty"` 797 URL_ *string `json:"url,omitempty"` 798 MultiURL_ *MessageCardURL `json:"multi_url,omitempty"` 799 Type_ *MessageCardButtonType `json:"type,omitempty"` 800 } 801 802 func NewMessageCardEmbedSelectOption() *MessageCardEmbedSelectOption { 803 return &MessageCardEmbedSelectOption{} 804 } 805 806 func (m *MessageCardEmbedSelectOption) Text(text *MessageCardPlainText) *MessageCardEmbedSelectOption { 807 m.Text_ = text 808 return m 809 } 810 811 func (m *MessageCardEmbedSelectOption) Value(value string) *MessageCardEmbedSelectOption { 812 m.Value_ = value 813 return m 814 } 815 816 func (m *MessageCardEmbedSelectOption) URL(url string) *MessageCardEmbedSelectOption { 817 m.URL_ = &url 818 return m 819 } 820 821 func (m *MessageCardEmbedSelectOption) MultiUrl(multiUrl *MessageCardURL) *MessageCardEmbedSelectOption { 822 m.MultiURL_ = multiUrl 823 return m 824 } 825 826 func (m *MessageCardEmbedSelectOption) Type(type_ *MessageCardButtonType) *MessageCardEmbedSelectOption { 827 m.Type_ = type_ 828 return m 829 } 830 831 func (m *MessageCardEmbedSelectOption) Build() *MessageCardEmbedSelectOption { 832 return m 833 } 834 835 type MessageCardEmbedOverflow struct { 836 Options_ []*MessageCardEmbedSelectOption `json:"options,omitempty"` 837 Value_ map[string]interface { 838 } `json:"value,omitempty"` 839 Confirm_ *MessageCardActionConfirm `json:"confirm,omitempty"` 840 } 841 842 func NewMessageCardEmbedOverflow() *MessageCardEmbedOverflow { 843 return &MessageCardEmbedOverflow{} 844 } 845 846 func (overFlow *MessageCardEmbedOverflow) Options(options []*MessageCardEmbedSelectOption) *MessageCardEmbedOverflow { 847 overFlow.Options_ = options 848 return overFlow 849 } 850 851 func (overFlow *MessageCardEmbedOverflow) Value(value map[string]interface{}) *MessageCardEmbedOverflow { 852 overFlow.Value_ = value 853 return overFlow 854 } 855 func (overFlow *MessageCardEmbedOverflow) Confirm(confirm *MessageCardActionConfirm) *MessageCardEmbedOverflow { 856 overFlow.Confirm_ = confirm 857 return overFlow 858 } 859 func (overFlow *MessageCardEmbedOverflow) Build() *MessageCardEmbedOverflow { 860 return overFlow 861 } 862 863 func (m *MessageCardEmbedOverflow) Tag() string { 864 return "overflow" 865 } 866 867 func (m *MessageCardEmbedOverflow) MarshalJSON() ([]byte, error) { 868 return messageCardElementJson(m) 869 } 870 871 func (m *MessageCardEmbedOverflow) IsAction() { 872 } 873 874 func (m *MessageCardEmbedOverflow) IsExtra() { 875 } 876 877 type MessageCardEmbedSelectMenuBase struct { 878 Placeholder_ *MessageCardPlainText `json:"placeholder,omitempty"` 879 InitialOption_ string `json:"initial_option,omitempty"` 880 Options_ []*MessageCardEmbedSelectOption `json:"options,omitempty"` 881 Value_ map[string]interface { 882 } `json:"value,omitempty"` 883 Confirm_ *MessageCardActionConfirm `json:"confirm,omitempty"` 884 } 885 886 func NewMessageCardEmbedSelectMenuBase() *MessageCardEmbedSelectMenuBase { 887 return &MessageCardEmbedSelectMenuBase{} 888 } 889 890 func (selectMenu *MessageCardEmbedSelectMenuBase) Placeholder(placeholder *MessageCardPlainText) *MessageCardEmbedSelectMenuBase { 891 selectMenu.Placeholder_ = placeholder 892 return selectMenu 893 } 894 895 func (selectMenu *MessageCardEmbedSelectMenuBase) InitialOption(initialOption string) *MessageCardEmbedSelectMenuBase { 896 selectMenu.InitialOption_ = initialOption 897 return selectMenu 898 } 899 900 func (selectMenu *MessageCardEmbedSelectMenuBase) Options(options []*MessageCardEmbedSelectOption) *MessageCardEmbedSelectMenuBase { 901 selectMenu.Options_ = options 902 return selectMenu 903 } 904 905 func (selectMenu *MessageCardEmbedSelectMenuBase) Value(value map[string]interface{}) *MessageCardEmbedSelectMenuBase { 906 selectMenu.Value_ = value 907 return selectMenu 908 } 909 910 func (selectMenu *MessageCardEmbedSelectMenuBase) Confirm(confirm *MessageCardActionConfirm) *MessageCardEmbedSelectMenuBase { 911 selectMenu.Confirm_ = confirm 912 return selectMenu 913 } 914 915 func (selectMenu *MessageCardEmbedSelectMenuBase) Build() *MessageCardEmbedSelectMenuBase { 916 return selectMenu 917 } 918 919 func (m *MessageCardEmbedSelectMenuBase) IsAction() { 920 } 921 922 func (m *MessageCardEmbedSelectMenuBase) IsExtra() { 923 } 924 925 type MessageCardEmbedSelectMenuStatic struct { 926 *MessageCardEmbedSelectMenuBase 927 } 928 929 func NewMessageCardEmbedSelectMenuStatic() *MessageCardEmbedSelectMenuStatic { 930 return &MessageCardEmbedSelectMenuStatic{} 931 } 932 933 func (m *MessageCardEmbedSelectMenuStatic) MessageCardEmbedSelectMenuStatic(base *MessageCardEmbedSelectMenuBase) *MessageCardEmbedSelectMenuStatic { 934 m.MessageCardEmbedSelectMenuBase = base 935 return m 936 } 937 938 func (m *MessageCardEmbedSelectMenuStatic) Build() *MessageCardEmbedSelectMenuStatic { 939 return m 940 } 941 942 func (m *MessageCardEmbedSelectMenuStatic) Tag() string { 943 return "select_static" 944 } 945 946 func (m *MessageCardEmbedSelectMenuStatic) MarshalJSON() ([]byte, error) { 947 return messageCardElementJson(m) 948 } 949 950 type MessageCardEmbedSelectMenuPerson struct { 951 *MessageCardEmbedSelectMenuBase 952 } 953 954 func NewMessageCardEmbedSelectMenuPerson() *MessageCardEmbedSelectMenuPerson { 955 return &MessageCardEmbedSelectMenuPerson{} 956 } 957 958 func (menuPerson *MessageCardEmbedSelectMenuPerson) MessageCardEmbedSelectMenu(messageCardEmbedSelectMenuBase *MessageCardEmbedSelectMenuBase) *MessageCardEmbedSelectMenuPerson { 959 menuPerson.MessageCardEmbedSelectMenuBase = messageCardEmbedSelectMenuBase 960 return menuPerson 961 } 962 963 func (menuPerson *MessageCardEmbedSelectMenuPerson) Build(messageCardEmbedSelectMenuBase *MessageCardEmbedSelectMenuBase) *MessageCardEmbedSelectMenuPerson { 964 return menuPerson 965 } 966 967 func (m *MessageCardEmbedSelectMenuPerson) Tag() string { 968 return "select_person" 969 } 970 971 func (m *MessageCardEmbedSelectMenuPerson) MarshalJSON() ([]byte, error) { 972 return messageCardElementJson(m) 973 } 974 975 type MessageCardActionLayout string 976 977 const ( 978 MessageCardActionLayoutBisected MessageCardActionLayout = "bisected" 979 MessageCardActionLayoutTrisection MessageCardActionLayout = "trisection" 980 MessageCardActionLayoutFlow MessageCardActionLayout = "flow" 981 ) 982 983 func (al MessageCardActionLayout) Ptr() *MessageCardActionLayout { 984 return &al 985 } 986 987 type MessageCardAction struct { 988 Actions_ []MessageCardActionElement `json:"actions,omitempty"` 989 Layout_ *MessageCardActionLayout `json:"layout,omitempty"` 990 } 991 992 func NewMessageCardAction() *MessageCardAction { 993 return &MessageCardAction{} 994 } 995 996 func (cardAction *MessageCardAction) Actions(actions []MessageCardActionElement) *MessageCardAction { 997 cardAction.Actions_ = actions 998 return cardAction 999 } 1000 1001 func (cardAction *MessageCardAction) Layout(layout *MessageCardActionLayout) *MessageCardAction { 1002 cardAction.Layout_ = layout 1003 return cardAction 1004 } 1005 1006 func (cardAction *MessageCardAction) Build() *MessageCardAction { 1007 return cardAction 1008 } 1009 1010 func (m *MessageCardAction) Tag() string { 1011 return "action" 1012 } 1013 1014 func (m *MessageCardAction) MarshalJSON() ([]byte, error) { 1015 return messageCardElementJson(m) 1016 } 1017 1018 type MessageCardPlainTextI18n struct { 1019 ZhCN_ string `json:"zh_cn,omitempty"` 1020 EnUS_ string `json:"en_us,omitempty"` 1021 JaJP_ string `json:"ja_jp,omitempty"` 1022 } 1023 1024 func NewMessageCardPlainTextI18n() *MessageCardPlainTextI18n { 1025 return &MessageCardPlainTextI18n{} 1026 } 1027 1028 func (i18n *MessageCardPlainTextI18n) ZhCN(zhCn string) *MessageCardPlainTextI18n { 1029 i18n.ZhCN_ = zhCn 1030 return i18n 1031 } 1032 1033 func (i18n *MessageCardPlainTextI18n) EnUS(enUs string) *MessageCardPlainTextI18n { 1034 i18n.EnUS_ = enUs 1035 return i18n 1036 } 1037 1038 func (i18n *MessageCardPlainTextI18n) JaJP(jaJp string) *MessageCardPlainTextI18n { 1039 i18n.JaJP_ = jaJp 1040 return i18n 1041 } 1042 1043 func (i18n *MessageCardPlainTextI18n) Build() *MessageCardPlainTextI18n { 1044 return i18n 1045 } 1046 1047 type CardAction struct { 1048 *larkevent.EventReq 1049 OpenID string `json:"open_id"` 1050 UserID string `json:"user_id"` 1051 OpenMessageID string `json:"open_message_id"` 1052 TenantKey string `json:"tenant_key"` 1053 Token string `json:"token"` 1054 Timezone string `json:"timezone"` 1055 Challenge string `json:"challenge"` 1056 Type string `json:"type"` 1057 1058 Action *struct { 1059 Value map[string]interface{} `json:"value"` 1060 Tag string `json:"tag"` 1061 Option string `json:"option"` 1062 Timezone string `json:"timezone"` 1063 } `json:"action"` 1064 } 1065 1066 type cardChallenge struct { 1067 Challenge string `json:"challenge"` 1068 Token string `json:"token"` 1069 Type string `json:"type"` 1070 } 1071 type CustomResp struct { 1072 StatusCode int 1073 Body map[string]interface{} 1074 } 1075 1076 type CustomToastBody struct { 1077 Content string `json:"content"` 1078 I18n *I18n `json:"i18n"` 1079 } 1080 1081 type I18n struct { 1082 ZhCn string `json:"zh_cn"` 1083 EnCn string `json:"en_us"` 1084 JaJp string `json:"ja_jp"` 1085 } 1086 1087 type CardActionBody struct { 1088 *CardAction 1089 Challenge string `json:"challenge"` 1090 Type string `json:"type"` 1091 }