going to question management
This commit is contained in:
parent
00e93fde2e
commit
585d6ac6e3
7 changed files with 150 additions and 0 deletions
|
|
@ -0,0 +1,10 @@
|
|||
namespace SurveyBackend.Services.Exceptions;
|
||||
|
||||
public class BadRequestException : ServiceException
|
||||
{
|
||||
public override int StatusCode => 400;
|
||||
|
||||
public BadRequestException(string message) : base(message)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
using SurveyBackend.Core.Contexts;
|
||||
using SurveyBackend.Services.Exceptions;
|
||||
using SurveyLib.Core.Models;
|
||||
using SurveyLib.Core.Repositories;
|
||||
using SurveyLib.Core.Services;
|
||||
|
||||
namespace SurveyBackend.Services.Services;
|
||||
|
||||
public class QuestionService : IQuestionService
|
||||
{
|
||||
private readonly IQuestionRepository _questionRepository;
|
||||
|
||||
public QuestionService(IQuestionRepository questionRepository, IUserContext userContext)
|
||||
{
|
||||
_questionRepository = questionRepository;
|
||||
}
|
||||
|
||||
public async Task AddQuestionAsync(QuestionBase question)
|
||||
{
|
||||
await _questionRepository.AddAsync(question);
|
||||
}
|
||||
|
||||
public async Task UpdateQuestionAsync(QuestionBase question)
|
||||
{
|
||||
await _questionRepository.UpdateAsync(question);
|
||||
}
|
||||
|
||||
public async Task DeleteQuestionAsync(int id)
|
||||
{
|
||||
var question = await _questionRepository.GetByIdAsync(id);
|
||||
if (question is null)
|
||||
{
|
||||
throw new NotFoundException("Question not found");
|
||||
}
|
||||
|
||||
await _questionRepository.DeleteAsync(question);
|
||||
}
|
||||
|
||||
public async Task<QuestionBase> GetQuestionByIdAsync(int id)
|
||||
{
|
||||
var question = await _questionRepository.GetByIdAsync(id);
|
||||
if (question is null)
|
||||
{
|
||||
throw new NotFoundException("Question not found");
|
||||
}
|
||||
|
||||
return question;
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<QuestionBase>> GetQuestionsBySurveyIdAsync(int surveyId)
|
||||
{
|
||||
return await _questionRepository.GetQuestionsBySurveyId(surveyId);
|
||||
}
|
||||
}
|
||||
|
|
@ -42,6 +42,8 @@ public class SurveyService : ISurveyService
|
|||
{
|
||||
throw new UnauthorizedAccessException("You are not authorized to delete this survey.");
|
||||
}
|
||||
|
||||
await _surveyRepository.DeleteAsync(survey);
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<Survey>> GetSurveysAsync()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue