Files
go-chat-app/internal/services/messaging.go
2026-02-26 08:21:58 -05:00

29 lines
563 B
Go

package services
import (
"chat/internal/cache"
"chat/internal/models"
repo "chat/internal/repositories"
"fmt"
"time"
)
type MessagingService struct {
cache *cache.Cache
}
// Send a chat message
func (s *MessagingService) Send(msg string, user *models.User, channel *models.Channel) error {
key := fmt.Sprintf("%s:messages:%s:%s", channel.ID, user.ID, time.Now())
if err := repo.SendChatMessage(msg, user, channel); err == nil {
// Store in cache
go func() {
s.cache.Set(key, msg, time.Minute*10)
}()
return nil
} else {
return err
}
}