diff --git a/pkg/internal/server/api/calls_api.go b/pkg/internal/server/api/calls_api.go index f96e057..167477f 100644 --- a/pkg/internal/server/api/calls_api.go +++ b/pkg/internal/server/api/calls_api.go @@ -1,6 +1,8 @@ package api import ( + "sync" + "git.solsynth.dev/hydrogen/messaging/pkg/internal/database" "git.solsynth.dev/hydrogen/messaging/pkg/internal/gap" "git.solsynth.dev/hydrogen/messaging/pkg/internal/models" @@ -9,7 +11,6 @@ import ( "github.com/gofiber/fiber/v2" "github.com/google/uuid" "github.com/spf13/viper" - "sync" ) var callLocks sync.Map @@ -129,7 +130,7 @@ func endCall(c *fiber.Ctx) error { if err != nil { return fiber.NewError(fiber.StatusNotFound, err.Error()) } else if call.FounderID != user.ID && membership.PowerLevel < 50 { - return fiber.NewError(fiber.StatusBadRequest, "only call founder or channel admin can end this call") + return fiber.NewError(fiber.StatusBadRequest, "only call founder or channel moderator can end this call") } if call, err := services.EndCall(call); err != nil { diff --git a/pkg/internal/services/calls.go b/pkg/internal/services/calls.go index 6073b2d..b0b2950 100644 --- a/pkg/internal/services/calls.go +++ b/pkg/internal/services/calls.go @@ -107,7 +107,6 @@ func NewCall(channel models.Channel, founder models.ChannelMember) (models.Call, } else if err = database.C.Where(models.ChannelMember{ ChannelID: call.ChannelID, }).Preload("Account").Find(&members).Error; err == nil { - channel = call.Channel call, _ = GetCall(call.Channel, call.ID) var pendingUsers []models.Account for _, member := range members { @@ -120,11 +119,13 @@ func NewCall(channel models.Channel, founder models.ChannelMember) (models.Call, }) } + channel, _ = GetChannel(channel.ID) + err = NotifyAccountMessagerBatch( pendingUsers, &proto.NotifyRequest{ Topic: "messaging.callStart", - Title: fmt.Sprintf("Call in %s", channel.DisplayText()), + Title: fmt.Sprintf("Call in (%s)", channel.DisplayText()), Body: fmt.Sprintf("%s is calling", call.Founder.Account.Name), Avatar: &call.Founder.Account.Avatar, Metadata: EncodeJSONBody(map[string]any{ @@ -181,10 +182,7 @@ func KickParticipantInCall(call models.Call, username string) error { } func EncodeCallToken(user models.Account, call models.Call) (string, error) { - isAdmin := false - if user.ID == call.FounderID || user.ID == call.Channel.AccountID { - isAdmin = true - } + isAdmin := user.ID == call.FounderID || user.ID == call.Channel.AccountID grant := &auth.VideoGrant{ Room: call.ExternalID,