From 9db1ee3f508552a121c8d7884f5cfe741af3dec8 Mon Sep 17 00:00:00 2001 From: Foxix Date: Mon, 11 Aug 2025 11:36:23 +0300 Subject: [PATCH] Bug fix: favourites route --- pkg/services/movie.go | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pkg/services/movie.go b/pkg/services/movie.go index e41624b..036be02 100644 --- a/pkg/services/movie.go +++ b/pkg/services/movie.go @@ -5,6 +5,7 @@ import ( "strconv" "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/mongo" "neomovies-api/pkg/models" @@ -57,24 +58,32 @@ func (s *MovieService) GetSimilar(id, page int, language string) (*models.TMDBRe func (s *MovieService) AddToFavorites(userID string, movieID string) error { collection := s.db.Collection("users") - filter := bson.M{"_id": userID} + objID, err := primitive.ObjectIDFromHex(userID) + if err != nil { + return err + } + filter := bson.M{"_id": objID} update := bson.M{ "$addToSet": bson.M{"favorites": movieID}, } - _, err := collection.UpdateOne(context.Background(), filter, update) + _, err = collection.UpdateOne(context.Background(), filter, update) return err } func (s *MovieService) RemoveFromFavorites(userID string, movieID string) error { collection := s.db.Collection("users") - filter := bson.M{"_id": userID} + objID, err := primitive.ObjectIDFromHex(userID) + if err != nil { + return err + } + filter := bson.M{"_id": objID} update := bson.M{ "$pull": bson.M{"favorites": movieID}, } - _, err := collection.UpdateOne(context.Background(), filter, update) + _, err = collection.UpdateOne(context.Background(), filter, update) return err } @@ -82,7 +91,11 @@ func (s *MovieService) GetFavorites(userID string, language string) ([]models.Mo collection := s.db.Collection("users") var user models.User - err := collection.FindOne(context.Background(), bson.M{"_id": userID}).Decode(&user) + objID, err := primitive.ObjectIDFromHex(userID) + if err != nil { + return nil, err + } + err = collection.FindOne(context.Background(), bson.M{"_id": objID}).Decode(&user) if err != nil { return nil, err }