Skip to content
Snippets Groups Projects
Commit 01e568b3 authored by esantangelo's avatar esantangelo
Browse files

add endpoint /api/Course/GetStudents/{courseId}

parent 90b944e0
No related branches found
No related tags found
No related merge requests found
Pipeline #10613 passed
...@@ -231,7 +231,7 @@ namespace Tsi1.Api.Controllers ...@@ -231,7 +231,7 @@ namespace Tsi1.Api.Controllers
return Ok(); return Ok();
} }
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor + ", " + UserTypes.FacultyAdmin + ", " + UserTypes.UdelarAdmin)]
[HttpGet("GetProfessors/{courseId}")] [HttpGet("GetProfessors/{courseId}")]
public async Task<IActionResult> GetProfessors(int courseId) public async Task<IActionResult> GetProfessors(int courseId)
{ {
...@@ -244,6 +244,19 @@ namespace Tsi1.Api.Controllers ...@@ -244,6 +244,19 @@ namespace Tsi1.Api.Controllers
return Ok(result.Data); return Ok(result.Data);
} }
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor + ", " + UserTypes.FacultyAdmin + ", " + UserTypes.UdelarAdmin)]
[HttpGet("GetStudents/{courseId}")]
public async Task<IActionResult> GetStudents(int courseId)
{
var result = await _courseService.GetStudents(courseId);
if (result.HasError)
{
return BadRequest(result.Message);
}
return Ok(result.Data);
}
[Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor + ", " + UserTypes.FacultyAdmin)] [Authorize(Roles = UserTypes.Student + ", " + UserTypes.Professor + ", " + UserTypes.FacultyAdmin)]
[HttpGet("GetById/{courseId}")] [HttpGet("GetById/{courseId}")]
public async Task<IActionResult> GetById(int courseId) public async Task<IActionResult> GetById(int courseId)
......
...@@ -27,5 +27,6 @@ namespace Tsi1.BusinessLayer.Interfaces ...@@ -27,5 +27,6 @@ namespace Tsi1.BusinessLayer.Interfaces
Task<ServiceResult<bool>> RemoveProfessorToCourse(ProfessorCourseDto professorCourseDto); Task<ServiceResult<bool>> RemoveProfessorToCourse(ProfessorCourseDto professorCourseDto);
Task<ServiceResult<List<UserPreviewDto>>> GetProfessors(int courseId); Task<ServiceResult<List<UserPreviewDto>>> GetProfessors(int courseId);
Task<ServiceResult<CourseDetailDto>> GetById(int courseId); Task<ServiceResult<CourseDetailDto>> GetById(int courseId);
Task<ServiceResult<List<UserPreviewDto>>> GetStudents(int courseId);
} }
} }
...@@ -427,5 +427,22 @@ namespace Tsi1.BusinessLayer.Services ...@@ -427,5 +427,22 @@ namespace Tsi1.BusinessLayer.Services
return result; return result;
} }
public async Task<ServiceResult<List<UserPreviewDto>>> GetStudents(int courseId)
{
var result = new ServiceResult<List<UserPreviewDto>>();
var users = await _context.StudentCourses
.Include(x => x.Student)
.ThenInclude(x => x.User)
.Where(x => x.CourseId == courseId)
.Select(x => x.Student.User)
.ToListAsync();
var userDtos = _mapper.Map<List<UserPreviewDto>>(users);
result.Data = userDtos;
return result;
}
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment