Skip to content

Commit b88fb14

Browse files
committed
get points for reaction
1 parent c0c9d05 commit b88fb14

4 files changed

Lines changed: 60 additions & 0 deletions

File tree

rocket-backend/integration-tests/mocks/database_mock.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ type MockDB struct {
5252
GetChallengeByIDFunc func(challengeID uuid.UUID) (*types.Challenge, error)
5353
SaveActivityFunc func(userID uuid.UUID, message string) error
5454
GetActivitiesForUserAndFriendsFunc func(userID uuid.UUID) ([]types.ActivityWithUser, error)
55+
SaveChatMessageFunc func(userID uuid.UUID, message string, timestamp string) (uuid.UUID, error)
56+
GetChatMessagesFunc func(userID uuid.UUID) ([]types.ChatMessage, error)
57+
AddReactionToChatMessageFunc func(userID uuid.UUID, messageID uuid.UUID) error
58+
CountReactionsForMessageFunc func(messageID uuid.UUID) (int, error)
59+
GetIDByMessageIDFunc func(messageID uuid.UUID) (uuid.UUID, error)
5560
}
5661

5762
func (m *MockDB) ExecuteRawSQL(query string) (sql.Result, error) {
@@ -347,3 +352,38 @@ func (m *MockDB) DeleteRun(runID uuid.UUID) error {
347352
}
348353
return nil
349354
}
355+
356+
func (m *MockDB) SaveChatMessage(userID uuid.UUID, message string, timestamp string) (uuid.UUID, error) {
357+
if m.SaveChatMessageFunc != nil {
358+
return m.SaveChatMessageFunc(userID, message, timestamp)
359+
}
360+
return uuid.Nil, nil
361+
}
362+
363+
func (m *MockDB) GetChatMessages(userID uuid.UUID) ([]types.ChatMessage, error) {
364+
if m.GetChatMessagesFunc != nil {
365+
return m.GetChatMessagesFunc(userID)
366+
}
367+
return nil, nil
368+
}
369+
370+
func (m *MockDB) AddReactionToChatMessage(userID uuid.UUID, messageID uuid.UUID) error {
371+
if m.AddReactionToChatMessageFunc != nil {
372+
return m.AddReactionToChatMessageFunc(userID, messageID)
373+
}
374+
return nil
375+
}
376+
377+
func (m *MockDB) CountReactionsForMessage(messageID uuid.UUID) (int, error) {
378+
if m.CountReactionsForMessageFunc != nil {
379+
return m.CountReactionsForMessageFunc(messageID)
380+
}
381+
return 0, nil
382+
}
383+
384+
func (m *MockDB) GetIDByMessageID(messageID uuid.UUID) (uuid.UUID, error) {
385+
if m.GetIDByMessageIDFunc != nil {
386+
return m.GetIDByMessageIDFunc(messageID)
387+
}
388+
return uuid.Nil, nil
389+
}

rocket-backend/internal/database/chat_messages_table.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,14 @@ func (s *service) CountReactionsForMessage(messageID uuid.UUID) (int, error) {
9191
err := s.db.QueryRow(query, messageID).Scan(&count)
9292
return count, err
9393
}
94+
95+
func (s *service) GetIDByMessageID(messageID uuid.UUID) (uuid.UUID, error) {
96+
query := `SELECT user_id FROM chat_messages WHERE id = $1`
97+
var userID uuid.UUID
98+
err := s.db.QueryRow(query, messageID).Scan(&userID)
99+
if err != nil {
100+
logger.Error("Failed to get user ID by message ID", err)
101+
return uuid.Nil, fmt.Errorf("%w: %v", custom_error.ErrFailedToRetrieveData, err)
102+
}
103+
return userID, nil
104+
}

rocket-backend/internal/database/database.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ type Service interface {
9090
GetChatMessages(userID uuid.UUID) ([]types.ChatMessage, error)
9191
AddReactionToChatMessage(userID uuid.UUID, messageID uuid.UUID) error
9292
CountReactionsForMessage(messageID uuid.UUID) (int, error)
93+
GetIDByMessageID(messageID uuid.UUID) (uuid.UUID, error)
9394
}
9495

9596
type service struct {

rocket-backend/internal/server/chat_ws.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,14 @@ func (s *Server) ChatWebSocketHandler(hub *ChatHub) gin.HandlerFunc {
125125
if countErr != nil {
126126
logger.Error("Failed to count reactions for message:", countErr)
127127
}
128+
resiver, err := s.db.GetIDByMessageID(messageID)
129+
if err != nil {
130+
logger.Error("Failed to get user ID by message ID:", err)
131+
}
132+
err = s.db.UpdateRocketPoints(resiver, 10)
133+
if err != nil {
134+
logger.Error("Failed to add reaction points for user:", userUUID.String(), "error:", err)
135+
}
128136
// Broadcast reaction event
129137
reactionEvent := map[string]any{
130138
"type": "reaction",

0 commit comments

Comments
 (0)