12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package notification
- import (
- "context"
- "github.com/0xJacky/Nginx-UI/model"
- "github.com/nikoksr/notify/service/lark"
- "github.com/uozi-tech/cosy/map2struct"
- )
- // @external_notifier(Lark Custom)
- type LarkCustom struct {
- AppID string `json:"app_id" title:"App ID"`
- AppSecret string `json:"app_secret" title:"App Secret"`
- OpenID string `json:"open_id" title:"Open ID"`
- UserID string `json:"user_id" title:"User ID"`
- UnionID string `json:"union_id" title:"Union ID"`
- Email string `json:"email" title:"Email"`
- ChatID string `json:"chat_id" title:"Chat ID"`
- }
- func init() {
- RegisterExternalNotifier("lark_custom", func(ctx context.Context, n *model.ExternalNotify, msg *ExternalMessage) error {
- larkCustomConfig := &LarkCustom{}
- err := map2struct.WeakDecode(n.Config, larkCustomConfig)
- if err != nil {
- return err
- }
- if larkCustomConfig.AppID == "" || larkCustomConfig.AppSecret == "" {
- return ErrInvalidNotifierConfig
- }
- larkCustomAppService := lark.NewCustomAppService(larkCustomConfig.AppID, larkCustomConfig.AppSecret)
- larkCustomAppService.AddReceivers(
- lark.OpenID(larkCustomConfig.OpenID),
- lark.UserID(larkCustomConfig.UserID),
- lark.UnionID(larkCustomConfig.UnionID),
- lark.Email(larkCustomConfig.Email),
- lark.ChatID(larkCustomConfig.ChatID),
- )
- return larkCustomAppService.Send(ctx, msg.GetTitle(n.Language), msg.GetContent(n.Language))
- })
- }
|