From 9a0c9943da9f60335416714b5a6f7d99f000279d Mon Sep 17 00:00:00 2001 From: esantangelo <enzo020895@gmail.com> Date: Sat, 12 Dec 2020 09:27:45 -0300 Subject: [PATCH] forum GetById --- .../Tsi1.Api/Controllers/ForumController.cs | 28 +++++++++---------- .../Interfaces/IForumService.cs | 1 + .../Services/ForumService.cs | 18 ++++++++++++ 3 files changed, 33 insertions(+), 14 deletions(-) diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs index 3820061..1c15566 100644 --- a/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs +++ b/Tsi1.Api/Tsi1.Api/Controllers/ForumController.cs @@ -36,20 +36,6 @@ namespace Tsi1.Api.Controllers return Ok(result.Data); } - //[Authorize(Roles = UserTypes.Professor)] - //[HttpPost("Create")] - //public async Task<IActionResult> Create(ForumCreateDto newForum) - //{ - // var result = await _forumService.Create(newForum); - - // if (result.HasError) - // { - // return BadRequest(result.Message); - // } - - // return Ok(result.Data); - //} - [Authorize(Roles = UserTypes.Professor)] [HttpPut("{id}")] public async Task<IActionResult> Modify(int id, ForumModifyDto forum) @@ -99,5 +85,19 @@ namespace Tsi1.Api.Controllers return Ok(); } + [Authorize(Roles = UserTypes.Professor + ", " + UserTypes.Student + ", " + UserTypes.FacultyAdmin)] + [HttpGet("GetById/{forumId}")] + public async Task<IActionResult> GetById(int forumId) + { + var result = await _forumService.GetById(forumId); + + if (result.HasError) + { + return BadRequest(result.Message); + } + + return Ok(result.Data); + } + } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs index 3c581da..3fad38a 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IForumService.cs @@ -16,5 +16,6 @@ namespace Tsi1.BusinessLayer.Interfaces Task<ServiceResult<Forum>> Delete(int forumId); Task<ServiceResult<List<string>>> GetSubscribedUsers(int forumId); Task<ServiceResult<List<bool>>> Subscribe(int forumId, int userId); + Task<ServiceResult<ForumPreviewDto>> GetById(int forumId); } } diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs index 70eae19..7d8be8f 100644 --- a/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs +++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/ForumService.cs @@ -190,5 +190,23 @@ namespace Tsi1.BusinessLayer.Services return result; } + + public async Task<ServiceResult<ForumPreviewDto>> GetById(int forumId) + { + var result = new ServiceResult<ForumPreviewDto>(); + + var forum = await _context.Forums.AsNoTracking().FirstOrDefaultAsync(x => x.Id == forumId); + + if (forum == null) + { + result.HasError = true; + result.Message = string.Format(ErrorMessages.ForumDoesNotExist, forumId); + return result; + } + + result.Data = _mapper.Map<ForumPreviewDto>(forum); + + return result; + } } } -- GitLab