main.go 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. TypeDingTalk = "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. }
  22. func (message *Message) Send(user *model.User) error {
  23. switch message.Channel {
  24. case TypeEmail:
  25. return SendEmailMessage(message, user)
  26. case TypeWeChatTestAccount:
  27. return SendWeChatTestMessage(message, user)
  28. case TypeWeChatCorpAccount:
  29. return SendWeChatCorpMessage(message, user)
  30. case TypeLark:
  31. case TypeDingTalk:
  32. case TypeTelegram:
  33. default:
  34. return errors.New("不支持的消息通道:" + message.Channel)
  35. }
  36. return nil
  37. }