aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-01-17 14:45:48 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-01-17 14:45:48 +0200
commit8d1d0b40d56f90248f948e474330258bf57cf0b6 (patch)
treeab4431208ea495c6b8c5de0b91cb85cdef66d20e /src
parent83f63ad729d585d597bdcf0afc05b7d56344223e (diff)
downloadDevHive-8d1d0b40d56f90248f948e474330258bf57cf0b6.tar
DevHive-8d1d0b40d56f90248f948e474330258bf57cf0b6.tar.gz
DevHive-8d1d0b40d56f90248f948e474330258bf57cf0b6.zip
Fixed role implementation by bringing back and improving all role models
Diffstat (limited to 'src')
-rw-r--r--src/DevHive.Services/Configurations/Mapping/RoleMapings.cs8
-rw-r--r--src/DevHive.Services/Interfaces/IRoleService.cs10
-rw-r--r--src/DevHive.Services/Models/Identity/Role/RoleServiceModel.cs (renamed from src/DevHive.Common/Models/Identity/RoleModel.cs)4
-rw-r--r--src/DevHive.Services/Models/Identity/Role/UpdateRoleServiceModel.cs7
-rw-r--r--src/DevHive.Services/Models/Identity/User/UserServiceModel.cs6
-rw-r--r--src/DevHive.Services/Services/RoleService.cs24
-rw-r--r--src/DevHive.Web/Configurations/Mapping/RoleMappings.cs12
-rw-r--r--src/DevHive.Web/Controllers/RoleController.cs28
-rw-r--r--src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs2
-rw-r--r--src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs2
-rw-r--r--src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs2
11 files changed, 60 insertions, 45 deletions
diff --git a/src/DevHive.Services/Configurations/Mapping/RoleMapings.cs b/src/DevHive.Services/Configurations/Mapping/RoleMapings.cs
index 65b0b5a..4ddd253 100644
--- a/src/DevHive.Services/Configurations/Mapping/RoleMapings.cs
+++ b/src/DevHive.Services/Configurations/Mapping/RoleMapings.cs
@@ -1,15 +1,15 @@
using DevHive.Data.Models;
using AutoMapper;
-using DevHive.Common.Models.Identity;
+using DevHive.Services.Models.Identity.Role;
namespace DevHive.Services.Configurations.Mapping
{
- public class RoleMappings : Profile
+ public class RoleMappings : Profile
{
public RoleMappings()
{
- CreateMap<RoleModel, Role>();
- CreateMap<Role, RoleModel>();
+ CreateMap<RoleServiceModel, Role>();
+ CreateMap<Role, RoleServiceModel>();
}
}
}
diff --git a/src/DevHive.Services/Interfaces/IRoleService.cs b/src/DevHive.Services/Interfaces/IRoleService.cs
index 2c7195c..a7a0e47 100644
--- a/src/DevHive.Services/Interfaces/IRoleService.cs
+++ b/src/DevHive.Services/Interfaces/IRoleService.cs
@@ -1,16 +1,16 @@
using System;
using System.Threading.Tasks;
-using DevHive.Common.Models.Identity;
+using DevHive.Services.Models.Identity.Role;
namespace DevHive.Services.Interfaces
{
- public interface IRoleService
+ public interface IRoleService
{
- Task<bool> CreateRole(RoleModel roleServiceModel);
+ Task<Guid> CreateRole(RoleServiceModel roleServiceModel);
- Task<RoleModel> GetRoleById(Guid id);
+ Task<RoleServiceModel> GetRoleById(Guid id);
- Task<bool> UpdateRole(RoleModel roleServiceModel);
+ Task<bool> UpdateRole(RoleServiceModel roleServiceModel);
Task<bool> DeleteRole(Guid id);
}
diff --git a/src/DevHive.Common/Models/Identity/RoleModel.cs b/src/DevHive.Services/Models/Identity/Role/RoleServiceModel.cs
index 5db8df9..3f834ef 100644
--- a/src/DevHive.Common/Models/Identity/RoleModel.cs
+++ b/src/DevHive.Services/Models/Identity/Role/RoleServiceModel.cs
@@ -1,8 +1,8 @@
using System;
-namespace DevHive.Common.Models.Identity
+namespace DevHive.Services.Models.Identity.Role
{
- public class RoleModel
+ public class RoleServiceModel
{
public Guid Id { get; set; }
public string Name { get; set; }
diff --git a/src/DevHive.Services/Models/Identity/Role/UpdateRoleServiceModel.cs b/src/DevHive.Services/Models/Identity/Role/UpdateRoleServiceModel.cs
new file mode 100644
index 0000000..be71771
--- /dev/null
+++ b/src/DevHive.Services/Models/Identity/Role/UpdateRoleServiceModel.cs
@@ -0,0 +1,7 @@
+namespace DevHive.Services.Models.Identity.Role
+{
+ public class UpdateRoleServiceModel
+ {
+ public string Name { get; set; }
+ }
+}
diff --git a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
index ecf8c42..aa77a0c 100644
--- a/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
+++ b/src/DevHive.Services/Models/Identity/User/UserServiceModel.cs
@@ -1,13 +1,13 @@
using System.Collections.Generic;
-using DevHive.Common.Models.Identity;
+using DevHive.Services.Models.Identity.Role;
using DevHive.Services.Models.Language;
using DevHive.Services.Models.Technology;
namespace DevHive.Services.Models.Identity.User
{
- public class UserServiceModel : BaseUserServiceModel
+ public class UserServiceModel : BaseUserServiceModel
{
- public IList<RoleModel> Roles { get; set; } = new List<RoleModel>();
+ public IList<RoleServiceModel> Roles { get; set; } = new List<RoleServiceModel>();
public IList<UserServiceModel> Friends { get; set; } = new List<UserServiceModel>();
diff --git a/src/DevHive.Services/Services/RoleService.cs b/src/DevHive.Services/Services/RoleService.cs
index c38ac74..0945624 100644
--- a/src/DevHive.Services/Services/RoleService.cs
+++ b/src/DevHive.Services/Services/RoleService.cs
@@ -1,14 +1,15 @@
using System;
using System.Threading.Tasks;
using AutoMapper;
-using DevHive.Common.Models.Identity;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
using DevHive.Services.Interfaces;
+using DevHive.Services.Models.Identity.Role;
+using DevHive.Services.Models.Language;
namespace DevHive.Services.Services
{
- public class RoleService : IRoleService
+ public class RoleService : IRoleService
{
private readonly IRoleRepository _roleRepository;
private readonly IMapper _roleMapper;
@@ -19,25 +20,34 @@ namespace DevHive.Services.Services
this._roleMapper = mapper;
}
- public async Task<bool> CreateRole(RoleModel roleServiceModel)
+ public async Task<Guid> CreateRole(RoleServiceModel roleServiceModel)
{
if (await this._roleRepository.DoesNameExist(roleServiceModel.Name))
throw new ArgumentException("Role already exists!");
+
Role role = this._roleMapper.Map<Role>(roleServiceModel);
+ bool success = await this._roleRepository.AddAsync(role);
+
+ if(success)
+ {
+ Role newRole = await this._roleRepository.GetByNameAsync(roleServiceModel.Name);
+ return newRole.Id;
+ }
+ else
+ return Guid.Empty;
- return await this._roleRepository.AddAsync(role);
}
- public async Task<RoleModel> GetRoleById(Guid id)
+ public async Task<RoleServiceModel> GetRoleById(Guid id)
{
Role role = await this._roleRepository.GetByIdAsync(id)
?? throw new ArgumentException("Role does not exist!");
- return this._roleMapper.Map<RoleModel>(role);
+ return this._roleMapper.Map<RoleServiceModel>(role);
}
- public async Task<bool> UpdateRole(RoleModel roleServiceModel)
+ public async Task<bool> UpdateRole(RoleServiceModel roleServiceModel)
{
if (!await this._roleRepository.DoesRoleExist(roleServiceModel.Id))
throw new ArgumentException("Role does not exist!");
diff --git a/src/DevHive.Web/Configurations/Mapping/RoleMappings.cs b/src/DevHive.Web/Configurations/Mapping/RoleMappings.cs
index afa3a94..bce7c07 100644
--- a/src/DevHive.Web/Configurations/Mapping/RoleMappings.cs
+++ b/src/DevHive.Web/Configurations/Mapping/RoleMappings.cs
@@ -1,18 +1,18 @@
using AutoMapper;
using DevHive.Web.Models.Identity.Role;
-using DevHive.Common.Models.Identity;
+using DevHive.Services.Models.Identity.Role;
namespace DevHive.Web.Configurations.Mapping
{
- public class RoleMappings : Profile
+ public class RoleMappings : Profile
{
public RoleMappings()
{
- CreateMap<CreateRoleModel, RoleModel>();
- CreateMap<UpdateRoleModel, RoleModel>();
+ CreateMap<CreateRoleWebModel, RoleServiceModel>();
+ CreateMap<UpdateRoleWebModel, RoleServiceModel>();
- CreateMap<RoleModel, RoleWebModel>();
- CreateMap<RoleWebModel, RoleModel>();
+ CreateMap<RoleServiceModel, RoleWebModel>();
+ CreateMap<RoleWebModel, RoleServiceModel>();
}
}
}
diff --git a/src/DevHive.Web/Controllers/RoleController.cs b/src/DevHive.Web/Controllers/RoleController.cs
index 8ea2711..5b3dca5 100644
--- a/src/DevHive.Web/Controllers/RoleController.cs
+++ b/src/DevHive.Web/Controllers/RoleController.cs
@@ -3,12 +3,12 @@ using Microsoft.AspNetCore.Mvc;
using DevHive.Web.Models.Identity.Role;
using AutoMapper;
using System;
-using DevHive.Common.Models.Identity;
using DevHive.Services.Interfaces;
+using DevHive.Services.Models.Identity.Role;
namespace DevHive.Web.Controllers
{
- [ApiController]
+ [ApiController]
[Route("/api/[controller]")]
//[Authorize(Roles = "Admin")]
public class RoleController
@@ -23,33 +23,33 @@ namespace DevHive.Web.Controllers
}
[HttpPost]
- public async Task<IActionResult> Create([FromBody] CreateRoleModel createRoleModel)
+ public async Task<IActionResult> Create([FromBody] CreateRoleWebModel createRoleWebModel)
{
- RoleModel roleServiceModel =
- this._roleMapper.Map<RoleModel>(createRoleModel);
+ RoleServiceModel roleServiceModel =
+ this._roleMapper.Map<RoleServiceModel>(createRoleWebModel);
- bool result = await this._roleService.CreateRole(roleServiceModel);
+ Guid id = await this._roleService.CreateRole(roleServiceModel);
- if (!result)
- return new BadRequestObjectResult("Could not create role!");
+ return id == Guid.Empty ?
+ new BadRequestObjectResult($"Could not create role {createRoleWebModel.Name}") :
+ new OkObjectResult(new { Id = id });
- return new OkResult();
}
[HttpGet]
public async Task<IActionResult> GetById(Guid id)
{
- RoleModel roleServiceModel = await this._roleService.GetRoleById(id);
- RoleModel roleWebModel = this._roleMapper.Map<RoleModel>(roleServiceModel);
+ RoleServiceModel roleServiceModel = await this._roleService.GetRoleById(id);
+ RoleWebModel roleWebModel = this._roleMapper.Map<RoleWebModel>(roleServiceModel);
return new OkObjectResult(roleWebModel);
}
[HttpPut]
- public async Task<IActionResult> Update(Guid id, [FromBody] UpdateRoleModel updateRoleModel)
+ public async Task<IActionResult> Update(Guid id, [FromBody] UpdateRoleWebModel updateRoleWebModel)
{
- RoleModel roleServiceModel =
- this._roleMapper.Map<RoleModel>(updateRoleModel);
+ RoleServiceModel roleServiceModel =
+ this._roleMapper.Map<RoleServiceModel>(updateRoleWebModel);
roleServiceModel.Id = id;
bool result = await this._roleService.UpdateRole(roleServiceModel);
diff --git a/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
index becb3c9..e872428 100644
--- a/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/CreateRoleWebModel.cs
@@ -1,6 +1,6 @@
namespace DevHive.Web.Models.Identity.Role
{
- public class CreateRoleModel
+ public class CreateRoleWebModel
{
public string Name { get; set; }
}
diff --git a/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
index 9e97ffc..41ade23 100644
--- a/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/RoleWebModel.cs
@@ -1,5 +1,3 @@
-using System;
-
namespace DevHive.Web.Models.Identity.Role
{
public class RoleWebModel
diff --git a/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs b/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
index 1eaad57..213ec55 100644
--- a/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
+++ b/src/DevHive.Web/Models/Identity/Role/UpdateRoleWebModel.cs
@@ -1,6 +1,6 @@
namespace DevHive.Web.Models.Identity.Role
{
- public class UpdateRoleModel : CreateRoleModel
+ public class UpdateRoleWebModel : CreateRoleWebModel
{
}
}