push.go 746 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package notification
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/event"
  4. "github.com/0xJacky/Nginx-UI/model"
  5. "github.com/0xJacky/Nginx-UI/query"
  6. "github.com/uozi-tech/cosy/logger"
  7. )
  8. func push(nType model.NotificationType, title string, content string, details any) {
  9. n := query.Notification
  10. data := &model.Notification{
  11. Type: nType,
  12. Title: title,
  13. Content: content,
  14. Details: details,
  15. }
  16. err := n.Create(data)
  17. if err != nil {
  18. logger.Error(err)
  19. return
  20. }
  21. // Use event system instead of direct broadcast
  22. event.Publish(event.Event{
  23. Type: event.EventTypeNotification,
  24. Data: data,
  25. })
  26. // Keep the old broadcast for backward compatibility
  27. broadcast(data)
  28. extNotify := &ExternalMessage{data}
  29. extNotify.Send()
  30. }