main.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package channel
  2. import (
  3. "errors"
  4. "message-pusher/model"
  5. )
  6. const (
  7. TypeEmail = "email"
  8. TypeWeChatTestAccount = "test"
  9. TypeWeChatCorpAccount = "corp"
  10. TypeLark = "lark"
  11. TypeDing = "ding"
  12. TypeTelegram = "telegram"
  13. )
  14. type Message struct {
  15. Title string `json:"title"`
  16. Description string `json:"description"`
  17. Content string `json:"content"`
  18. URL string `json:"url"`
  19. Channel string `json:"channel"`
  20. Token string `json:"token"`
  21. HTMLContent string `json:"html_content"`
  22. }
  23. func (message *Message) Send(user *model.User) error {
  24. switch message.Channel {
  25. case TypeEmail:
  26. return SendEmailMessage(message, user)
  27. case TypeWeChatTestAccount:
  28. return SendWeChatTestMessage(message, user)
  29. case TypeWeChatCorpAccount:
  30. return SendWeChatCorpMessage(message, user)
  31. case TypeLark:
  32. return SendLarkMessage(message, user)
  33. case TypeDing:
  34. return SendDingMessage(message, user)
  35. default:
  36. return errors.New("不支持的消息通道:" + message.Channel)
  37. }
  38. }