public async Task <ActionResult> Put(int peliculaId, int reviewId, [FromBody] ReviewCreactionDTO reviewCreactionDTO) { 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(reviewCreactionDTO, reviewDB); await context.SaveChangesAsync(); return(NoContent()); }
public async Task <ActionResult> Post(int peliculaId, [FromBody] ReviewCreactionDTO reviewCreactionDTO) { 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 esta pelicula")); } var review = mapper.Map <Review>(reviewCreactionDTO); review.PeliculaId = peliculaId; review.UsuarioId = usuarioId; context.Add(review); await context.SaveChangesAsync(); return(NoContent()); }