nginx-ui/internal/notification/lark.go

30 lines
746 B
Go

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)
type Lark struct {
WebhookURL string `json:"webhook_url" title:"Webhook URL"`
}
func init() {
RegisterExternalNotifier("lark", func(ctx context.Context, n *model.ExternalNotify, msg *ExternalMessage) error {
larkConfig := &Lark{}
err := map2struct.WeakDecode(n.Config, larkConfig)
if err != nil {
return err
}
if larkConfig.WebhookURL == "" {
return ErrInvalidNotifierConfig
}
larkService := lark.NewWebhookService(larkConfig.WebhookURL)
return larkService.Send(ctx, msg.GetTitle(n.Language), msg.GetContent(n.Language))
})
}