diff options
| author | transtrike <transtrike@gmail.com> | 2020-12-17 23:05:20 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2020-12-17 23:05:20 +0200 |
| commit | faa2e47b6718c59feadecea176020f3326076d5d (patch) | |
| tree | 6c67123d1ebcc897bb80a640108d5e1d5d636a0c /src/DevHive.Web | |
| parent | b24b9b1ffa528f29aa87f0e48097a35386fbb8b1 (diff) | |
| download | DevHive-faa2e47b6718c59feadecea176020f3326076d5d.tar DevHive-faa2e47b6718c59feadecea176020f3326076d5d.tar.gz DevHive-faa2e47b6718c59feadecea176020f3326076d5d.zip | |
Implemented Friends layer
Diffstat (limited to 'src/DevHive.Web')
| -rw-r--r-- | src/DevHive.Web/Controllers/FriendsController.cs | 59 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/UserController.cs | 9 |
2 files changed, 59 insertions, 9 deletions
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<IActionResult> 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<IActionResult> GetAFriend(Guid friendId) + { + UserServiceModel friendServiceModel = await this._friendsService.GetFriendById(friendId); + UserWebModel friend = this._friendsMapper.Map<UserWebModel>(friendServiceModel); + + return new OkObjectResult(friend); + } + + //Delete + [HttpDelete] + [Route("GetAFriend")] + public async Task<IActionResult> 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<IActionResult> AddAFriend(Guid userId, [FromBody] IdModel friendIdModel) - { - return await this._userService.AddFriend(userId, friendIdModel.Id) ? - new OkResult() : - new BadRequestResult(); - } - //Read [HttpGet] public async Task<IActionResult> GetById(Guid id) |
