aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/DevHive.Services/Interfaces/ILanguageService.cs2
-rw-r--r--src/DevHive.Services/Interfaces/ITechnologyService.cs2
-rw-r--r--src/DevHive.Services/Interfaces/IUserService.cs2
-rw-r--r--src/DevHive.Services/Models/Identity/User/UserServiceModel.cs5
-rw-r--r--src/DevHive.Services/Services/LanguageService.cs5
-rw-r--r--src/DevHive.Services/Services/TechnologyService.cs5
-rw-r--r--src/DevHive.Services/Services/UserService.cs8
-rw-r--r--src/DevHive.Web/Controllers/LanguageController.cs3
-rw-r--r--src/DevHive.Web/Controllers/TechnologyController.cs5
-rw-r--r--src/DevHive.Web/Controllers/UserController.cs70
-rw-r--r--src/DevHive.Web/Models/Identity/User/FriendWebModel.cs7
-rw-r--r--src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs9
-rw-r--r--src/DevHive.Web/Models/Identity/User/UserWebModel.cs4
-rw-r--r--src/DevHive.Web/Models/Language/UpdateLanguageWebModel.cs2
-rw-r--r--src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs2
15 files changed, 44 insertions, 87 deletions
diff --git a/src/DevHive.Services/Interfaces/ILanguageService.cs b/src/DevHive.Services/Interfaces/ILanguageService.cs
index eb45a8d..08b3812 100644
--- a/src/DevHive.Services/Interfaces/ILanguageService.cs
+++ b/src/DevHive.Services/Interfaces/ILanguageService.cs
@@ -10,7 +10,7 @@ namespace DevHive.Services.Interfaces
Task<LanguageServiceModel> GetLanguageById(Guid languageId);
- Task<bool> UpdateLanguage(Guid languageId, UpdateLanguageServiceModel languageServiceModel);
+ Task<bool> UpdateLanguage(UpdateLanguageServiceModel languageServiceModel);
Task<bool> DeleteLanguage(Guid languageId);
}
diff --git a/src/DevHive.Services/Interfaces/ITechnologyService.cs b/src/DevHive.Services/Interfaces/ITechnologyService.cs
index 0797078..9e1e955 100644
--- a/src/DevHive.Services/Interfaces/ITechnologyService.cs
+++ b/src/DevHive.Services/Interfaces/ITechnologyService.cs
@@ -10,7 +10,7 @@ namespace DevHive.Services.Interfaces
Task<CreateTechnologyServiceModel> GetTechnologyById(Guid id);
- Task<bool> UpdateTechnology(Guid technologyId, UpdateTechnologyServiceModel updateTechnologyServiceModel);
+ Task<bool> UpdateTechnology(UpdateTechnologyServiceModel updateTechnologyServiceModel);
Task<bool> DeleteTechnology(Guid id);
}
diff --git a/src/DevHive.Services/Interfaces/IUserService.cs b/src/DevHive.Services/Interfaces/IUserService.cs
index 5ef141f..0f834e9 100644
--- a/src/DevHive.Services/Interfaces/IUserService.cs
+++ b/src/DevHive.Services/Interfaces/IUserService.cs
@@ -16,7 +16,7 @@ namespace DevHive.Services.Interfaces
Task<bool> AddLanguageToUser(Guid userId, LanguageServiceModel languageServiceModel);
Task<bool> AddTechnologyToUser(Guid userId, TechnologyServiceModel technologyServiceModel);
- Task<UserServiceModel> GetFriendById(Guid friendId);
+ Task<UserServiceModel> GetFriend(string username);
Task<UserServiceModel> GetUserById(Guid id);
Task<UserServiceModel> UpdateUser(UpdateUserServiceModel updateModel);
diff --git a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
index 8825f50..ecf8c42 100644
--- a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
+++ b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
@@ -8,8 +8,11 @@ namespace DevHive.Services.Models.Identity.User
public class UserServiceModel : BaseUserServiceModel
{
public IList<RoleModel> Roles { get; set; } = new List<RoleModel>();
+
public IList<UserServiceModel> Friends { get; set; } = new List<UserServiceModel>();
+
public IList<LanguageServiceModel> Languages { get; set; } = new List<LanguageServiceModel>();
- public IList<TechnologyServiceModel> TechnologyServiceModels { get; set; } = new List<TechnologyServiceModel>();
+
+ public IList<TechnologyServiceModel> Technologies { get; set; } = new List<TechnologyServiceModel>();
}
}
diff --git a/src/DevHive.Services/Services/LanguageService.cs b/src/DevHive.Services/Services/LanguageService.cs
index be035c2..5b697cd 100644
--- a/src/DevHive.Services/Services/LanguageService.cs
+++ b/src/DevHive.Services/Services/LanguageService.cs
@@ -48,9 +48,9 @@ namespace DevHive.Services.Services
#region Update
- public async Task<bool> UpdateLanguage(Guid languageId, UpdateLanguageServiceModel languageServiceModel)
+ public async Task<bool> UpdateLanguage(UpdateLanguageServiceModel languageServiceModel)
{
- bool langExists = await this._languageRepository.DoesLanguageExistAsync(languageId);
+ bool langExists = await this._languageRepository.DoesLanguageExistAsync(languageServiceModel.Id);
bool newLangNameExists = await this._languageRepository.DoesLanguageNameExistAsync(languageServiceModel.Name);
if (!langExists)
@@ -59,7 +59,6 @@ namespace DevHive.Services.Services
if (newLangNameExists)
throw new ArgumentException("This name is already in our datbase!");
- languageServiceModel.Id = languageId;
Language lang = this._languageMapper.Map<Language>(languageServiceModel);
return await this._languageRepository.EditAsync(lang);
}
diff --git a/src/DevHive.Services/Services/TechnologyService.cs b/src/DevHive.Services/Services/TechnologyService.cs
index d8b7262..c088281 100644
--- a/src/DevHive.Services/Services/TechnologyService.cs
+++ b/src/DevHive.Services/Services/TechnologyService.cs
@@ -48,15 +48,14 @@ namespace DevHive.Services.Services
#region Update
- public async Task<bool> UpdateTechnology(Guid technologyId, UpdateTechnologyServiceModel updateTechnologyServiceModel)
+ public async Task<bool> UpdateTechnology(UpdateTechnologyServiceModel updateTechnologyServiceModel)
{
- if (!await this._technologyRepository.DoesTechnologyExistAsync(technologyId))
+ if (!await this._technologyRepository.DoesTechnologyExistAsync(updateTechnologyServiceModel.Id))
throw new ArgumentException("Technology does not exist!");
if (await this._technologyRepository.DoesTechnologyNameExistAsync(updateTechnologyServiceModel.Name))
throw new ArgumentException("Technology name already exists!");
- updateTechnologyServiceModel.Id = technologyId;
Technology technology = this._technologyMapper.Map<Technology>(updateTechnologyServiceModel);
bool result = await this._technologyRepository.EditAsync(technology);
diff --git a/src/DevHive.Services/Services/UserService.cs b/src/DevHive.Services/Services/UserService.cs
index 37dbc7b..d9e87e0 100644
--- a/src/DevHive.Services/Services/UserService.cs
+++ b/src/DevHive.Services/Services/UserService.cs
@@ -160,12 +160,12 @@ namespace DevHive.Services.Services
return this._userMapper.Map<UserServiceModel>(user);
}
- public async Task<UserServiceModel> GetFriendById(Guid friendId)
+ public async Task<UserServiceModel> GetFriend(string username)
{
- if (!await _userRepository.DoesUserExistAsync(friendId))
- throw new ArgumentException("User does not exist!");
+ User friend = await this._userRepository.GetByUsernameAsync(username);
- User friend = await this._userRepository.GetByIdAsync(friendId);
+ if (default(User) == friend)
+ throw new ArgumentException("User does not exist!");
return this._userMapper.Map<UserServiceModel>(friend);
}
diff --git a/src/DevHive.Web/Controllers/LanguageController.cs b/src/DevHive.Web/Controllers/LanguageController.cs
index 5202f16..c503a47 100644
--- a/src/DevHive.Web/Controllers/LanguageController.cs
+++ b/src/DevHive.Web/Controllers/LanguageController.cs
@@ -47,8 +47,9 @@ namespace DevHive.Web.Controllers
public async Task<IActionResult> Update(Guid languageId, [FromBody] UpdateLanguageWebModel updateModel)
{
UpdateLanguageServiceModel updatelanguageServiceModel = this._languageMapper.Map<UpdateLanguageServiceModel>(updateModel);
+ updatelanguageServiceModel.Id = languageId;
- bool result = await this._languageService.UpdateLanguage(languageId, updatelanguageServiceModel);
+ bool result = await this._languageService.UpdateLanguage(updatelanguageServiceModel);
if (!result)
return new BadRequestObjectResult("Could not update Language");
diff --git a/src/DevHive.Web/Controllers/TechnologyController.cs b/src/DevHive.Web/Controllers/TechnologyController.cs
index 3be3b8a..7f2f400 100644
--- a/src/DevHive.Web/Controllers/TechnologyController.cs
+++ b/src/DevHive.Web/Controllers/TechnologyController.cs
@@ -46,9 +46,10 @@ namespace DevHive.Web.Controllers
[HttpPut]
public async Task<IActionResult> Update(Guid technologyId, [FromBody] UpdateTechnologyWebModel updateModel)
{
- UpdateTechnologyServiceModel updateTechnologyWebModel = this._technologyMapper.Map<UpdateTechnologyServiceModel>(updateModel);
+ UpdateTechnologyServiceModel updateTechnologyServiceModel = this._technologyMapper.Map<UpdateTechnologyServiceModel>(updateModel);
+ updateTechnologyServiceModel.Id = technologyId;
- bool result = await this._technologyService.UpdateTechnology(technologyId, updateTechnologyWebModel);
+ bool result = await this._technologyService.UpdateTechnology(updateTechnologyServiceModel);
if (!result)
return new BadRequestObjectResult("Could not update Technology");
diff --git a/src/DevHive.Web/Controllers/UserController.cs b/src/DevHive.Web/Controllers/UserController.cs
index b33c3b9..8d48705 100644
--- a/src/DevHive.Web/Controllers/UserController.cs
+++ b/src/DevHive.Web/Controllers/UserController.cs
@@ -57,40 +57,6 @@ namespace DevHive.Web.Controllers
}
#endregion
- #region Create
-
- [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();
- }
-
- [HttpPost]
- [Route("AddLanguageToUser")]
- public async Task<IActionResult> AddLanguageToUser(Guid userId, [FromBody] LanguageWebModel languageWebModel)
- {
- LanguageServiceModel languageServiceModel = this._userMapper.Map<LanguageServiceModel>(languageWebModel);
-
- return await this._userService.AddLanguageToUser(userId, languageServiceModel) ?
- new OkResult() :
- new BadRequestResult();
- }
-
- [HttpPost]
- [Route("AddTechnologyToUser")]
- public async Task<IActionResult> AddTechnologyToUser(Guid userId, [FromBody] TechnologyWebModel technologyWebModel)
- {
- TechnologyServiceModel technologyServiceModel = this._userMapper.Map<TechnologyServiceModel>(technologyWebModel);
-
- return await this._userService.AddTechnologyToUser(userId, technologyServiceModel) ?
- new OkResult() :
- new BadRequestResult();
- }
- #endregion
-
#region Read
[HttpGet]
@@ -107,9 +73,10 @@ namespace DevHive.Web.Controllers
[HttpGet]
[Route("GetAFriend")]
- public async Task<IActionResult> GetAFriend(Guid friendId)
+ [AllowAnonymous]
+ public async Task<IActionResult> GetAFriend(string username)
{
- UserServiceModel friendServiceModel = await this._userService.GetFriendById(friendId);
+ UserServiceModel friendServiceModel = await this._userService.GetFriend(username);
UserWebModel friend = this._userMapper.Map<UserWebModel>(friendServiceModel);
return new OkObjectResult(friend);
@@ -134,7 +101,6 @@ namespace DevHive.Web.Controllers
#endregion
#region Delete
-
[HttpDelete]
public async Task<IActionResult> Delete(Guid id, [FromHeader] string authorization)
{
@@ -144,36 +110,6 @@ namespace DevHive.Web.Controllers
await this._userService.DeleteUser(id);
return new OkResult();
}
-
- [HttpDelete]
- [Route("RemoveAFriend")]
- public async Task<IActionResult> RemoveAFriend(Guid userId, Guid friendId)
- {
- await this._userService.RemoveFriend(userId, friendId);
- return new OkResult();
- }
-
- [HttpDelete]
- [Route("RemoveLanguageFromUser")]
- public async Task<IActionResult> RemoveLanguageFromUser(Guid userId, [FromBody] LanguageWebModel languageWebModel)
- {
- LanguageServiceModel languageServiceModel = this._userMapper.Map<LanguageServiceModel>(languageWebModel);
-
- return await this._userService.RemoveLanguageFromUser(userId, languageServiceModel) ?
- new OkResult() :
- new BadRequestResult();
- }
-
- [HttpDelete]
- [Route("RemoveTechnologyFromUser")]
- public async Task<IActionResult> RemoveTechnologyFromUser(Guid userId, [FromBody] TechnologyWebModel technologyWebModel)
- {
- TechnologyServiceModel technologyServiceModel = this._userMapper.Map<TechnologyServiceModel>(technologyWebModel);
-
- return await this._userService.RemoveTechnologyFromUser(userId, technologyServiceModel) ?
- new OkResult() :
- new BadRequestResult();
- }
#endregion
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs b/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs
new file mode 100644
index 0000000..681529a
--- /dev/null
+++ b/src/DevHive.Web/Models/Identity/User/FriendWebModel.cs
@@ -0,0 +1,7 @@
+namespace DevHive.Web.Models.Identity.User
+{
+ public class FriendWebModel
+ {
+ public string Username { get; set; }
+ }
+}
diff --git a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
index 9e41eb6..782c558 100644
--- a/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UpdateUserWebModel.cs
@@ -1,5 +1,8 @@
+using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using DevHive.Web.Models.Identity.Validation;
+using DevHive.Web.Models.Language;
+using DevHive.Web.Models.Technology;
namespace DevHive.Web.Models.Identity.User
{
@@ -8,5 +11,11 @@ namespace DevHive.Web.Models.Identity.User
[Required]
[GoodPassword]
public string Password { get; set; }
+
+ public IList<FriendWebModel> Friends { get; set; }
+
+ public IList<UpdateLanguageWebModel> Languages { get; set; }
+
+ public IList<UpdateTechnologyWebModel> Technologies { get; set; }
}
}
diff --git a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
index 8f7995c..3b243e7 100644
--- a/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/User/UserWebModel.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using DevHive.Common.Models.Identity;
using DevHive.Web.Models.Identity.Role;
using DevHive.Web.Models.Language;
using DevHive.Web.Models.Technology;
@@ -9,8 +8,11 @@ namespace DevHive.Web.Models.Identity.User
public class UserWebModel : BaseUserWebModel
{
public IList<RoleWebModel> Roles { get; set; } = new List<RoleWebModel>();
+
public IList<UserWebModel> Friends { get; set; } = new List<UserWebModel>();
+
public IList<LanguageWebModel> Languages { get; set; } = new List<LanguageWebModel>();
+
public IList<TechnologyWebModel> Technologies { get; set; } = new List<TechnologyWebModel>();
}
}
diff --git a/src/DevHive.Web/Models/Language/UpdateLanguageWebModel.cs b/src/DevHive.Web/Models/Language/UpdateLanguageWebModel.cs
index ed3b37c..18d945f 100644
--- a/src/DevHive.Web/Models/Language/UpdateLanguageWebModel.cs
+++ b/src/DevHive.Web/Models/Language/UpdateLanguageWebModel.cs
@@ -2,7 +2,7 @@ using System;
namespace DevHive.Web.Models.Language
{
- public class UpdateLanguageWebModel : LanguageWebModel
+ public class UpdateLanguageWebModel
{
public string Name { get; set; }
}
diff --git a/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs b/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
index 8bf48bf..4651b9e 100644
--- a/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
+++ b/src/DevHive.Web/Models/Technology/UpdateTechnologyWebModel.cs
@@ -2,7 +2,7 @@ using System;
namespace DevHive.Web.Models.Technology
{
- public class UpdateTechnologyWebModel : TechnologyWebModel
+ public class UpdateTechnologyWebModel
{
public string Name { get; set; }
}