From d4b46c93e08c689d8d609eb83aeee14233ae49e8 Mon Sep 17 00:00:00 2001 From: Brian Rogers Date: Fri, 17 Jul 2026 19:50:57 -0600 Subject: [PATCH] finished add movie method --- .../controllers/movie_controller.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/MagicStreamServer/controllers/movie_controller.go b/MagicStreamServer/controllers/movie_controller.go index 519dc53..6e7cdb9 100644 --- a/MagicStreamServer/controllers/movie_controller.go +++ b/MagicStreamServer/controllers/movie_controller.go @@ -9,12 +9,15 @@ import ( "github.com/captbrogers/MagicStreamServer/models" "github.com/gin-gonic/gin" + "github.com/go-playground/validator/v10" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" ) var movieCollection *mongo.Collection = database.OpenCollection("movies") +var validate = validator.New() + func GetMovies() gin.HandlerFunc { return func(ginCtx *gin.Context) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) @@ -72,5 +75,18 @@ func AddMovie() gin.HandlersChain { return } + if err := validate.Struct(movie); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": "Validation failed when binding struct", "details": err.Error()}) + return + } + + result, err := movieCollection.InsertOne(ctx, movie) + + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to insert the movie"}) + return + } + + c.JSON(http.StatusCreated, result) } } \ No newline at end of file