public async Task <ActionResult> Post(int peliculaId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { //var existePelicula = await context.Peliculas.AnyAsync(x => x.Id == peliculaId); //if (!existePelicula) //{ // return NotFound(); //} var usuarioId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; var reviewExiste = await context.Reviews.AnyAsync(x => x.PeliculaId == peliculaId && x.UsuarioId == usuarioId); if (reviewExiste) { return(BadRequest("El usuario ya ha escrito un review de la pelicula")); } var review = mapper.Map <Review>(reviewCreacionDTO); review.PeliculaId = peliculaId; review.UsuarioId = usuarioId; context.Add(review); await context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Put(int peliculaId, int reviewId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { //var existePelicula = await context.Peliculas.AnyAsync(x => x.Id == peliculaId); //if (!existePelicula) //{ // return NotFound(); //} var reviewDB = await context.Reviews.FirstOrDefaultAsync(x => x.Id == reviewId); if (reviewDB == null) { return(NotFound()); } var usuarioId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; if (reviewDB.UsuarioId != usuarioId) { return(BadRequest("No tiene permiso de editar este review.")); } reviewDB = mapper.Map(reviewCreacionDTO, reviewDB); await context.SaveChangesAsync(); return(NoContent()); }
public async Task CrearReview() { var nombreBD = Guid.NewGuid().ToString(); var contexto = ConstruirContext(nombreBD); CrearPeliculas(nombreBD); var peliculaId = contexto.Peliculas.Select(x => x.Id).First(); var contexto2 = ConstruirContext(nombreBD); var mapper = ConfigurarAutoMapper(); var controller = new ReviewController(contexto2, mapper); controller.ControllerContext = ConstruirControllerContext(); var reviewCreacionDTO = new ReviewCreacionDTO() { Puntuacion = 5 }; var respuesta = await controller.Post(peliculaId, reviewCreacionDTO); var valor = respuesta as NoContentResult; Assert.IsNotNull(valor); var contexto3 = ConstruirContext(nombreBD); var reviewDB = contexto3.Reviews.First(); Assert.AreEqual(usuarioPorDefectoId, reviewDB.UsuarioId); }
public async Task UsuarioNoPuedeCrearDosReviewsParaLaMismaPelicula() { var nombreBD = Guid.NewGuid().ToString(); var contexto = ConstruirContext(nombreBD); CrearPeliculas(nombreBD); var peliculaId = contexto.Peliculas.Select(x => x.Id).First(); var review1 = new Review() { PeliculaId = peliculaId, UsuarioId = usuarioPorDefectoId, Puntuacion = 5 }; contexto.Add(review1); await contexto.SaveChangesAsync(); var contexto2 = ConstruirContext(nombreBD); var mapper = ConfigurarAutoMapper(); var controller = new ReviewController(contexto2, mapper); controller.ControllerContext = ConstruirControllerContext(); var reviewCreacionDTO = new ReviewCreacionDTO { Puntuacion = 5 }; var respuesta = await controller.Post(peliculaId, reviewCreacionDTO); var valor = respuesta as IStatusCodeActionResult; Assert.AreEqual(400, valor.StatusCode.Value); }
public async Task <ActionResult> Post(int peliculaId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { var existePelicula = await _context.Peliculas.AnyAsync(p => p.Id == peliculaId); if (!existePelicula) { return(NotFound()); } var usuarioId = HttpContext.User.Claims.FirstOrDefault(u => u.Type == ClaimTypes.NameIdentifier).Value; var reviewExiste = await _context.Reviews.AnyAsync(r => r.PeliculaId == peliculaId && r.UsuarioId == usuarioId); if (reviewExiste) { return(BadRequest("El usuario ya ha escriot un review de esta película..!")); } var review = _mapper.Map <Review>(reviewCreacionDTO); review.PeliculaId = peliculaId; review.UsuarioId = usuarioId; _context.Add(review); await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Put(int peliculaId, int reviewId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { var reviewDB = await _context.Reviews.FirstOrDefaultAsync(r => r.Id == reviewId); if (reviewDB == null) { return(NotFound()); } var usuarioId = HttpContext.User.Claims.FirstOrDefault(u => u.Type == ClaimTypes.NameIdentifier).Value; if (reviewDB.UsuarioId != usuarioId) { return(BadRequest("No tiene permisos de editar este review")); } reviewDB = _mapper.Map(reviewCreacionDTO, reviewDB); await _context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Put(int peliculaId, int reviewId, [FromBody] ReviewCreacionDTO reviewCreacionDTO) { var reviewDB = await context.Reviews.FirstOrDefaultAsync(x => x.Id == reviewId); if (reviewDB == null) { return(NotFound()); } var usuarioId = HttpContext.User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value; if (reviewDB.UsuarioId != usuarioId) { return(Forbid()); } reviewDB = mapper.Map(reviewCreacionDTO, reviewDB); await context.SaveChangesAsync(); return(NoContent()); }