forked from MDCPS/DamageAssessment_Backend
implementation of Authentication using JWT. Security applied on all microservices endpoints.
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
using DamageAssesment.Api.Questions.Interfaces;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace DamageAssesment.Api.Questions.Controllers
|
||||
@ -10,16 +11,14 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
|
||||
public QuestionsController(IQuestionsProvider questionsProvider)
|
||||
{
|
||||
|
||||
this.questionsProvider = questionsProvider;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// GET request for retrieving questions.
|
||||
/// </summary>
|
||||
|
||||
// get all questions
|
||||
//get all questions
|
||||
[Authorize(Roles = "admin,survey,user,report")]
|
||||
[Route("Questions")]
|
||||
[Route("Questions/{language:alpha}")]
|
||||
[HttpGet]
|
||||
@ -37,6 +36,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// <summary>
|
||||
/// GET request for retrieving a question by ID.
|
||||
/// </summary>
|
||||
[Authorize(Roles = "admin,survey,user,report")]
|
||||
[Route("Questions/{id}/{language:alpha}")]
|
||||
[Route("Questions/{id:int}")]
|
||||
[HttpGet]
|
||||
@ -55,6 +55,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// GET request for retrieving survey questions based on a survey ID.
|
||||
/// Uri: {Optional language}/GetSurveyQuestions/{surveyId} :Default returns question in all languages
|
||||
/// </summary>
|
||||
[Authorize(Roles = "admin,survey,user,report")]
|
||||
[Route("Questions/BySurvey/{surveyId:int}")]
|
||||
[Route("Questions/BySurvey/{surveyId:int}/{language:alpha}")]
|
||||
[HttpGet]
|
||||
@ -71,6 +72,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// PUT request for updating a question (multilingual).
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpPut("Questions")]
|
||||
public async Task<IActionResult> UpdateQuestion(Models.Question question)
|
||||
{
|
||||
@ -92,6 +94,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// POST request for creating a new question (multilingual).
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpPost("Questions")]
|
||||
public async Task<IActionResult> CreateQuestion(Models.Question question)
|
||||
{
|
||||
@ -110,6 +113,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// DELETE request for deleting a question based on ID.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpDelete("Questions/{id}")]
|
||||
public async Task<IActionResult> DeleteQuestion(int id)
|
||||
{
|
||||
@ -125,6 +129,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// GET request for retrieving question categories.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin,user,report")]
|
||||
[HttpGet("Questions/Categories")]
|
||||
[HttpGet("Questions/Categories/{language:alpha}")]
|
||||
public async Task<IActionResult> GetQuestionCategoriesAsync(string? language)
|
||||
@ -139,7 +144,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// <summary>
|
||||
/// GET request for retrieving a question category by ID.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin,report")]
|
||||
[HttpGet("Questions/Categories/{id:int}")]
|
||||
[HttpGet("Questions/Categories/{id:int}/{language:alpha}")]
|
||||
public async Task<IActionResult> GetQuestionCategoryAsync(int id,string? language)
|
||||
@ -156,7 +161,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// <summary>
|
||||
/// PUT request for updating a question category.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin,survey,report")]
|
||||
[HttpPut("Questions/Categories")]
|
||||
public async Task<IActionResult> UpdateQuestionCategory(Models.QuestionCategory questionCategory)
|
||||
{
|
||||
@ -178,6 +183,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// POST request for creating a new question category.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpPost("Questions/Categories")]
|
||||
public async Task<IActionResult> CreateQuestionCategory(Models.QuestionCategory questionCategory)
|
||||
{
|
||||
@ -196,6 +202,7 @@ namespace DamageAssesment.Api.Questions.Controllers
|
||||
/// DELETE request for deleting a question category based on ID.
|
||||
/// </summary>
|
||||
|
||||
[Authorize(Roles = "admin")]
|
||||
[HttpDelete("Questions/Categories/{id}")]
|
||||
public async Task<IActionResult> DeleteQuestionCategory(int id)
|
||||
{
|
||||
|
Reference in New Issue
Block a user