From faa2e47b6718c59feadecea176020f3326076d5d Mon Sep 17 00:00:00 2001 From: transtrike Date: Thu, 17 Dec 2020 23:05:20 +0200 Subject: Implemented Friends layer --- src/DevHive.Web/Controllers/FriendsController.cs | 59 ++++++++++++++++++++++++ src/DevHive.Web/Controllers/UserController.cs | 9 ---- 2 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 src/DevHive.Web/Controllers/FriendsController.cs (limited to 'src/DevHive.Web') diff --git a/src/DevHive.Web/Controllers/FriendsController.cs b/src/DevHive.Web/Controllers/FriendsController.cs new file mode 100644 index 0000000..1c69bc3 --- /dev/null +++ b/src/DevHive.Web/Controllers/FriendsController.cs @@ -0,0 +1,59 @@ +using System; +using System.Threading.Tasks; +using AutoMapper; +using DevHive.Common.Models; +using DevHive.Data.Repositories; +using DevHive.Services.Models.Identity.User; +using DevHive.Services.Options; +using DevHive.Services.Services; +using DevHive.Web.Models.Identity.User; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +namespace DevHive.Web.Controllers +{ + [ApiController] + [Authorize(Roles = "User")] + public class FriendsController : UserController + { + private readonly FriendsService _friendsService; + private readonly IMapper _friendsMapper; + + public FriendsController(DevHiveContext context, IMapper mapper, JWTOptions jwtOptions) + : base(context, mapper, jwtOptions) + { + this._friendsService = new FriendsService(context, mapper, jwtOptions); + this._friendsMapper = mapper; + } + + //Create + [HttpPost] + [Route("AddAFriend")] + public async Task AddAFriend(Guid userId, [FromBody] IdModel friendIdModel) + { + return await this._friendsService.AddFriend(userId, friendIdModel.Id) ? + new OkResult() : + new BadRequestResult(); + } + + //Read + [HttpGet] + [Route("GetAFriend")] + public async Task GetAFriend(Guid friendId) + { + UserServiceModel friendServiceModel = await this._friendsService.GetFriendById(friendId); + UserWebModel friend = this._friendsMapper.Map(friendServiceModel); + + return new OkObjectResult(friend); + } + + //Delete + [HttpDelete] + [Route("GetAFriend")] + public async Task RemoveAFriend(Guid userId, Guid friendId) + { + await this._friendsService.RemoveFriend(userId, friendId); + return new OkResult(); + } + } +} \ No newline at end of file diff --git a/src/DevHive.Web/Controllers/UserController.cs b/src/DevHive.Web/Controllers/UserController.cs index cdb8dc1..e339f70 100644 --- a/src/DevHive.Web/Controllers/UserController.cs +++ b/src/DevHive.Web/Controllers/UserController.cs @@ -54,15 +54,6 @@ namespace DevHive.Web.Controllers return new CreatedResult("Register", tokenWebModel); } - [HttpPost] - [Route("AddAFriend")] - public async Task AddAFriend(Guid userId, [FromBody] IdModel friendIdModel) - { - return await this._userService.AddFriend(userId, friendIdModel.Id) ? - new OkResult() : - new BadRequestResult(); - } - //Read [HttpGet] public async Task GetById(Guid id) -- cgit v1.2.3