diff --git a/SurveyBackend/SurveyBackend.API/Controllers/SurveyController.cs b/SurveyBackend/SurveyBackend.API/Controllers/SurveyController.cs index fcc3e13..6e61320 100644 --- a/SurveyBackend/SurveyBackend.API/Controllers/SurveyController.cs +++ b/SurveyBackend/SurveyBackend.API/Controllers/SurveyController.cs @@ -76,6 +76,23 @@ public class SurveyController : ControllerBase return Ok(result); } + /// + /// Обновляет опрос целиком + /// + /// + /// + /// + [Authorize] + [HttpPut("{id}")] + public async Task Put(int id, [FromBody] UpdateSurveyDto dto) + { + var userId = _userContext.UserId; + var survey = SurveyMapper.UpdateDtoToModel(dto, userId, id); + await _surveyService.UpdateSurveyAsync(survey); + var result = SurveyMapper.ModelToOutputDto(survey); + return Ok(result); + } + /// /// Удалить опрос по ID /// diff --git a/SurveyBackend/SurveyBackend.API/DTOs/Survey/UpdateSurveyDTO.cs b/SurveyBackend/SurveyBackend.API/DTOs/Survey/UpdateSurveyDTO.cs new file mode 100644 index 0000000..0873176 --- /dev/null +++ b/SurveyBackend/SurveyBackend.API/DTOs/Survey/UpdateSurveyDTO.cs @@ -0,0 +1,5 @@ +namespace SurveyBackend.DTOs.Survey; + +public class UpdateSurveyDto : CreateSurveyDto +{ +} \ No newline at end of file diff --git a/SurveyBackend/SurveyBackend.API/Mappers/SurveyMapper.cs b/SurveyBackend/SurveyBackend.API/Mappers/SurveyMapper.cs index bbcc51f..55d90b3 100644 --- a/SurveyBackend/SurveyBackend.API/Mappers/SurveyMapper.cs +++ b/SurveyBackend/SurveyBackend.API/Mappers/SurveyMapper.cs @@ -24,6 +24,14 @@ public static class SurveyMapper }; } + public static Survey UpdateDtoToModel(UpdateSurveyDto dto, int userId, int surveyId) => new Survey + { + Id = surveyId, + Title = dto.Title, + Description = dto.Description, + CreatedBy = userId + }; + /// /// Модель в выходную схему ///