From 9b73e5af74e4aa2f6294b59dee7237a2fa75f26f Mon Sep 17 00:00:00 2001 From: Syndamia Date: Mon, 29 Mar 2021 16:58:23 +0300 Subject: Added initial implmementation of AddFriend --- .../Configurations/Mapping/UserMappings.cs | 3 +++ src/Web/DevHive.Web/Controllers/UserController.cs | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'src/Web/DevHive.Web') diff --git a/src/Web/DevHive.Web/Configurations/Mapping/UserMappings.cs b/src/Web/DevHive.Web/Configurations/Mapping/UserMappings.cs index 14aaa3a..1c193e8 100644 --- a/src/Web/DevHive.Web/Configurations/Mapping/UserMappings.cs +++ b/src/Web/DevHive.Web/Configurations/Mapping/UserMappings.cs @@ -28,6 +28,9 @@ namespace DevHive.Web.Configurations.Mapping CreateMap(); CreateMap(); + + // Friends + CreateMap(); } } } diff --git a/src/Web/DevHive.Web/Controllers/UserController.cs b/src/Web/DevHive.Web/Controllers/UserController.cs index 4d01447..2ed8e54 100644 --- a/src/Web/DevHive.Web/Controllers/UserController.cs +++ b/src/Web/DevHive.Web/Controllers/UserController.cs @@ -133,6 +133,26 @@ namespace DevHive.Web.Controllers } #endregion + #region Friends + [HttpPost] + [Route("AddFriend")] + [Authorize(Roles = "User,Admin")] + public async Task AddFriend(Guid id, [FromBody] UpdateFriendWebModel updateFriendWebModel, [FromHeader] string authorization) + { + if (!this._jwtService.ValidateToken(id, authorization)) + return new UnauthorizedResult(); + + UpdateFriendServiceModel updateFriendServiceModel = this._userMapper.Map(updateFriendWebModel); + + bool result = await this._userService.AddFriend(id, updateFriendServiceModel); + + if (!result) + return new BadRequestObjectResult("Could not add User as a friend"); + + return new OkResult(); + } + #endregion + #region Delete /// /// Delete a User with his Id. A PUSTINQK can only delete his account. An Admin can delete all accounts -- cgit v1.2.3