49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package channel
|
|
|
|
import (
|
|
"errors"
|
|
"message-pusher/model"
|
|
)
|
|
|
|
const (
|
|
TypeEmail = "email"
|
|
TypeWeChatTestAccount = "test"
|
|
TypeWeChatCorpAccount = "corp_app"
|
|
TypeCorp = "corp"
|
|
TypeLark = "lark"
|
|
TypeDing = "ding"
|
|
TypeTelegram = "telegram"
|
|
TypeBark = "bark"
|
|
)
|
|
|
|
type Message struct {
|
|
Title string `json:"title"`
|
|
Description string `json:"description"`
|
|
Content string `json:"content"`
|
|
URL string `json:"url"`
|
|
Channel string `json:"channel"`
|
|
Token string `json:"token"`
|
|
HTMLContent string `json:"html_content"`
|
|
}
|
|
|
|
func (message *Message) Send(user *model.User) error {
|
|
switch message.Channel {
|
|
case TypeEmail:
|
|
return SendEmailMessage(message, user)
|
|
case TypeWeChatTestAccount:
|
|
return SendWeChatTestMessage(message, user)
|
|
case TypeWeChatCorpAccount:
|
|
return SendWeChatCorpMessage(message, user)
|
|
case TypeCorp:
|
|
return SendCorpMessage(message, user)
|
|
case TypeLark:
|
|
return SendLarkMessage(message, user)
|
|
case TypeDing:
|
|
return SendDingMessage(message, user)
|
|
case TypeBark:
|
|
return SendBarkMessage(message, user)
|
|
default:
|
|
return errors.New("不支持的消息通道:" + message.Channel)
|
|
}
|
|
}
|