Esempio n. 1
0
        public async Task <IActionResult> CreateRating([FromBody] CreateRatingRequest request)
        {
            User user = await this.users.GetById(request.Uid);

            Rating rating = await this.ratingValues.GetByValue(request.Value);

            if (user == null)
            {
                return(BadRequest(new ErrorResponse {
                    Error = "Invalid uid"
                }));
            }
            if (rating == null)
            {
                return(BadRequest(new ErrorResponse {
                    Error = "Invalid Rating Value"
                }));
            }

            MovieRating userRating = new MovieRating
            {
                UserId   = user.Id,
                MovieId  = request.MovieId,
                RatingId = rating.Id,
                Review   = request.Review
            };

            if (await this.movieRatings.Exists(request.Uid, request.MovieId))
            {
                return(Conflict(new ErrorResponse {
                    Error = "Rating already exists"
                }));
            }

            MovieRating ratingAdded = await this.movieRatings.Add(userRating);

            MovieRatingResponse response = this.mapper.Map <MovieRatingResponse>(ratingAdded);

            return(CreatedAtAction("GetAllRatingsByMovie", new { movieId = response.MovieId }, response));
        }
Esempio n. 2
0
        public async Task <IActionResult> UpdateRating(UpdateRatingRequest request)
        {
            User user = await this.users.GetById(request.Uid);

            Rating rating = await this.ratingValues.GetByValue(request.Value);

            MovieRating ratingToUpdate = await this.movieRatings.GetById(request.Uid, request.MovieId);

            if (ratingToUpdate == null)
            {
                return(NotFound(new ErrorResponse {
                    Error = "Movie rating does not exist"
                }));
            }
            if (user == null)
            {
                return(BadRequest(new ErrorResponse {
                    Error = "Invalid uid"
                }));
            }
            if (rating == null)
            {
                return(BadRequest(new ErrorResponse {
                    Error = "Invalid Rating Value"
                }));
            }

            ratingToUpdate.RatingId = rating.Id;
            ratingToUpdate.Review   = request.Review;

            ratingToUpdate = await this.movieRatings.Update(ratingToUpdate);

            MovieRatingResponse response = this.mapper.Map <MovieRatingResponse>(ratingToUpdate);

            return(Ok(response));
        }