aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Web
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Web')
-rw-r--r--src/DevHive.Web/Controllers/FriendsController.cs59
-rw-r--r--src/DevHive.Web/Controllers/UserController.cs9
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)