diff --git a/go.mod b/go.mod index ac220da..4dd5587 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module git.solsynth.dev/hydrogen/messaging go 1.21.6 require ( - git.solsynth.dev/hydrogen/identity v0.0.0-20240320131628-6ac77f36957f + git.solsynth.dev/hydrogen/identity v0.0.0-20240331080359-e8aac7bb6627 github.com/go-playground/validator/v10 v10.17.0 github.com/gofiber/fiber/v2 v2.52.4 github.com/gofiber/template/html/v2 v2.1.1 diff --git a/go.sum b/go.sum index dee19cf..41f6731 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ git.solsynth.dev/hydrogen/identity v0.0.0-20240320131628-6ac77f36957f h1:6vRGU5bSb7Za6HUhpX1bYMsKElRbUyL/qB5fAs5IDE0= git.solsynth.dev/hydrogen/identity v0.0.0-20240320131628-6ac77f36957f/go.mod h1:rmh5biOQLvoIE2iRFbOfD0TITMP1orYpqzhUw50Z4ck= +git.solsynth.dev/hydrogen/identity v0.0.0-20240331080359-e8aac7bb6627 h1:BUhDqy/Whw1yVbDpmGk7clzRAC1jo+AOsCwuwhCVwkg= +git.solsynth.dev/hydrogen/identity v0.0.0-20240331080359-e8aac7bb6627/go.mod h1:GxcduEpQWQ2mO37A9uRtseS680uMLi957GDywRBAJHg= github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= diff --git a/pkg/services/accounts.go b/pkg/services/accounts.go index d1996b3..30ab592 100644 --- a/pkg/services/accounts.go +++ b/pkg/services/accounts.go @@ -10,7 +10,7 @@ import ( "github.com/spf13/viper" ) -func NotifyAccount(user models.Account, subject, content string, links ...*proto.NotifyLink) error { +func NotifyAccount(user models.Account, subject, content string, realtime bool, links ...*proto.NotifyLink) error { ctx, cancel := context.WithTimeout(context.Background(), time.Second*5) defer cancel() @@ -21,6 +21,7 @@ func NotifyAccount(user models.Account, subject, content string, links ...*proto Content: content, Links: links, RecipientId: uint64(user.ID), + IsRealtime: realtime, IsImportant: false, }) diff --git a/pkg/services/messages.go b/pkg/services/messages.go index 80c21b8..6855e9b 100644 --- a/pkg/services/messages.go +++ b/pkg/services/messages.go @@ -75,8 +75,9 @@ func NewMessage(message models.Message) (models.Message, error) { return message, err } else if err = database.C.Where(models.ChannelMember{ ChannelID: message.ChannelID, - }).Find(&members).Error; err == nil { + }).Preload("Account").Find(&members).Error; err == nil { for _, member := range members { + _ = NotifyAccount(member.Account, "New message at "+message.Channel.Name, message.Content, true) message, _ = GetMessage(message.Channel, message.ID) PushCommand(member.AccountID, models.UnifiedCommand{ Action: "messages.new",