aboutsummaryrefslogtreecommitdiff
path: root/src/Web
diff options
context:
space:
mode:
Diffstat (limited to 'src/Web')
-rw-r--r--src/Web/DevHive.Web.Models/User/UpdateFriendWebModel.cs10
-rw-r--r--src/Web/DevHive.Web/Configurations/Mapping/UserMappings.cs3
-rw-r--r--src/Web/DevHive.Web/Controllers/UserController.cs20
3 files changed, 33 insertions, 0 deletions
diff --git a/src/Web/DevHive.Web.Models/User/UpdateFriendWebModel.cs b/src/Web/DevHive.Web.Models/User/UpdateFriendWebModel.cs
new file mode 100644
index 0000000..84821f9
--- /dev/null
+++ b/src/Web/DevHive.Web.Models/User/UpdateFriendWebModel.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace DevHive.Web.Models.User
+{
+ public class UpdateFriendWebModel
+ {
+ public Guid Id { get; set; }
+ public string UserName { get; set; }
+ }
+}
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<UpdateUserServiceModel, UpdateUserWebModel>();
CreateMap<FriendServiceModel, UsernameWebModel>();
+
+ // Friends
+ CreateMap<UpdateFriendWebModel, UpdateFriendServiceModel>();
}
}
}
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<IActionResult> AddFriend(Guid id, [FromBody] UpdateFriendWebModel updateFriendWebModel, [FromHeader] string authorization)
+ {
+ if (!this._jwtService.ValidateToken(id, authorization))
+ return new UnauthorizedResult();
+
+ UpdateFriendServiceModel updateFriendServiceModel = this._userMapper.Map<UpdateFriendServiceModel>(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
/// <summary>
/// Delete a User with his Id. A PUSTINQK can only delete his account. An Admin can delete all accounts