add basic versions of retrieving answers by question or completion
This commit is contained in:
parent
637e6c9824
commit
d73e0a104f
7 changed files with 95 additions and 16 deletions
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue