2022-11-11 17:24:03 +08:00
|
|
|
package channel
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"message-pusher/model"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
TypeEmail = "email"
|
|
|
|
|
TypeWeChatTestAccount = "test"
|
2022-11-25 12:04:36 +08:00
|
|
|
TypeWeChatCorpAccount = "corp_app"
|
|
|
|
|
TypeCorp = "corp"
|
2022-11-11 17:24:03 +08:00
|
|
|
TypeLark = "lark"
|
2022-11-22 09:50:50 +08:00
|
|
|
TypeDing = "ding"
|
2022-11-11 17:24:03 +08:00
|
|
|
TypeTelegram = "telegram"
|
2022-11-23 17:30:49 +08:00
|
|
|
TypeBark = "bark"
|
2022-12-07 16:06:36 +08:00
|
|
|
TypeClient = "client"
|
2022-11-11 17:24:03 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Message struct {
|
|
|
|
|
Title string `json:"title"`
|
|
|
|
|
Description string `json:"description"`
|
2022-12-07 16:11:34 +08:00
|
|
|
Desp string `json:"desp"` // alias for description
|
2022-11-11 17:24:03 +08:00
|
|
|
Content string `json:"content"`
|
|
|
|
|
URL string `json:"url"`
|
|
|
|
|
Channel string `json:"channel"`
|
|
|
|
|
Token string `json:"token"`
|
2022-11-22 09:09:15 +08:00
|
|
|
HTMLContent string `json:"html_content"`
|
2022-11-11 17:24:03 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (message *Message) Send(user *model.User) error {
|
|
|
|
|
switch message.Channel {
|
|
|
|
|
case TypeEmail:
|
|
|
|
|
return SendEmailMessage(message, user)
|
|
|
|
|
case TypeWeChatTestAccount:
|
2022-11-18 17:17:53 +08:00
|
|
|
return SendWeChatTestMessage(message, user)
|
2022-11-11 17:24:03 +08:00
|
|
|
case TypeWeChatCorpAccount:
|
2022-11-18 17:41:27 +08:00
|
|
|
return SendWeChatCorpMessage(message, user)
|
2022-11-25 12:04:36 +08:00
|
|
|
case TypeCorp:
|
|
|
|
|
return SendCorpMessage(message, user)
|
2022-11-11 17:24:03 +08:00
|
|
|
case TypeLark:
|
2022-11-22 09:09:15 +08:00
|
|
|
return SendLarkMessage(message, user)
|
2022-11-22 09:50:50 +08:00
|
|
|
case TypeDing:
|
|
|
|
|
return SendDingMessage(message, user)
|
2022-11-23 17:30:49 +08:00
|
|
|
case TypeBark:
|
|
|
|
|
return SendBarkMessage(message, user)
|
2022-12-07 16:06:36 +08:00
|
|
|
case TypeClient:
|
|
|
|
|
return SendClientMessage(message, user)
|
2022-12-21 18:33:00 +08:00
|
|
|
case TypeTelegram:
|
|
|
|
|
return SendTelegramMessage(message, user)
|
2022-11-11 17:24:03 +08:00
|
|
|
default:
|
|
|
|
|
return errors.New("不支持的消息通道:" + message.Channel)
|
|
|
|
|
}
|
|
|
|
|
}
|