public IActionResult CreateFavoriteAsync(string userId, [FromBody] FavoriteForCreationDto jobFavorite) { if (jobFavorite == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } // mapeo el objeto DTO de entrada "jobFavorite" a la entidad "Entities.FavoriteEntity" // para utilizar la entidad para el almacenamiento de la información en DB var finalFavorite = _mapper.Map <FavoriteEntity>(jobFavorite); finalFavorite.UserId = userId; _favoriteRepository.CreateFavoriteAsync(finalFavorite); // mapeo la entidad que se guardó en la DB (FavoriteEntity) como el objeto DTO de respuesta (FavoriteDto) var createdFavoriteToReturn = _mapper.Map <FavoriteDto>(finalFavorite); // regresa un Created (201), el objeto recién creado y la llave "Location" en // el header indicando donde se puede obtener el recurso recién creado return(CreatedAtRoute( nameof(GetFavoriteAsync), // referencia al "Name" del método "GetFavoriteAsync" para obtener la url new { userId = userId, jobId = finalFavorite.JobId }, // clase anónima con las instancias de la url createdFavoriteToReturn)); // objeto recién creado }