add basic versions of retrieving answers by question or completion

This commit is contained in:
Вячеслав 2025-05-31 01:24:48 +05:00
parent 637e6c9824
commit d73e0a104f
7 changed files with 95 additions and 16 deletions

View file

@ -0,0 +1,37 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SurveyBackend.Mappers;
using SurveyLib.Core.Services;
namespace SurveyBackend.Controllers;
[ApiController]
public class AnswerController : ControllerBase
{
private readonly IAnswerService _answerService;
public AnswerController(IAnswerService answerService)
{
_answerService = answerService;
}
[Authorize]
[HttpGet]
[Route("api/questions/{id:int}/answers")]
public async Task<IActionResult> GetAnswersByQuestionId(int id)
{
var models = await _answerService.GetAnswersByQuestionIdAsync(id);
var result = models.Select(AnswerMapper.ModelToOutputDto);
return Ok(result);
}
[Authorize]
[HttpGet]
[Route("api/completions/{id:int}/answers")]
public async Task<IActionResult> GetAnswersByCompletionId(int id)
{
var models = await _answerService.GetAnswersByCompletionIdAsync(id);
var result = models.Select(AnswerMapper.ModelToOutputDto);
return Ok(result);
}
}

View file

@ -52,16 +52,15 @@ public class AnswerVariantsController : ControllerBase
/// <summary>
/// Обновить вариант ответа на вопрос
/// </summary>
/// <param name="surveyId">Идентификатор опроса</param>
/// <param name="questionId">Идентификатор вопроса</param>
/// <param name="id">Идентификатор варианта ответа</param>
/// <param name="dto">Объект с данными для обновления варианта ответа</param>
/// <returns>Результат обновленного варианта ответа</returns>
[Authorize]
[HttpPut("{id}")]
public async Task<IActionResult> Update(int surveyId, int questionId, int id, [FromBody] AnswerVariantUpdateDto dto)
[HttpPut]
[Route("/api/answerVariants/{id:int}")]
public async Task<IActionResult> Update(int id, [FromBody] AnswerVariantUpdateDto dto)
{
var model = AnswerVariantMapper.UpdateDtoToModel(dto, questionId, id);
var model = AnswerVariantMapper.UpdateDtoToModel(dto, id);
await _answerVariantsService.UpdateAnswerVariantAsync(model);
var result = AnswerVariantMapper.ModelToOutputDto(model);
return Ok(result);
@ -70,13 +69,12 @@ public class AnswerVariantsController : ControllerBase
/// <summary>
/// Удалить вариант ответа на вопрос
/// </summary>
/// <param name="surveyId">Идентификатор опроса</param>
/// <param name="questionId">Идентификатор вопроса</param>
/// <param name="id">Идентификатор варианта ответа</param>
/// <returns>Результат операции удаления</returns>
[Authorize]
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(int surveyId, int questionId, int id)
[HttpDelete]
[Route("/api/answerVariants/{id:int}")]
public async Task<IActionResult> Delete(int id)
{
await _answerVariantsService.DeleteAnswerVariantAsync(id);
return Ok();