diff --git a/backend/controllers/debatevsbot_controller.go b/backend/controllers/debatevsbot_controller.go index 95710990..fcbd48b4 100644 --- a/backend/controllers/debatevsbot_controller.go +++ b/backend/controllers/debatevsbot_controller.go @@ -209,6 +209,7 @@ func JudgeDebate(c *gin.Context) { // Update debate outcome if err := db.UpdateDebateVsBotOutcome(email, result); err != nil { + log.Printf("Failed to update debate vs bot outcome for %s: %v", email, err) } // Get the latest debate information to extract proper details diff --git a/backend/db/db.go b/backend/db/db.go index fb814314..75eb87cf 100644 --- a/backend/db/db.go +++ b/backend/db/db.go @@ -70,14 +70,11 @@ func SaveDebateVsBot(debate models.DebateVsBot) error { } // UpdateDebateVsBotOutcome updates the outcome of the most recent bot debate for a user -func UpdateDebateVsBotOutcome(userId, outcome string) error { - filter := bson.M{"userId": userId} +func UpdateDebateVsBotOutcome(email, outcome string) error { + filter := bson.M{"email": email} update := bson.M{"$set": bson.M{"outcome": outcome}} - _, err := DebateVsBotCollection.UpdateOne(context.Background(), filter, update, nil) - if err != nil { - return err - } - return nil + opts := options.FindOneAndUpdate().SetSort(bson.M{"createdAt": -1}) + return DebateVsBotCollection.FindOneAndUpdate(context.Background(), filter, update, opts).Err() } // GetLatestDebateVsBot retrieves the most recent bot debate for a user