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
+ };
+
///
/// Модель в выходную схему
///