roles endpoints in roles controller added

This commit is contained in:
2024-10-06 22:02:13 +02:00
Unverified
parent 4a5a688aa4
commit eb8d87dfe6
5 changed files with 177 additions and 10 deletions

View File

@@ -25,6 +25,14 @@ public class ActorRoleRequest : ActorRole, IActorRoleMediaRequest, IActorRolePer
PersonActorRoleTypeId = TypeId, PersonActorRoleTypeId = TypeId,
RoleName = Name, RoleName = Name,
}; };
public void UpdateActorRole(PersonActorRole item)
{
item.MediaId = MediaId;
item.PersonId = PersonId;
item.PersonActorRoleTypeId = TypeId;
item.RoleName = Name;
}
#endregion #endregion
} }

View File

@@ -24,6 +24,13 @@ public class CreatorRoleRequest : CreatorRole, ICreatorRoleMediaRequest, ICreato
PersonId = PersonId, PersonId = PersonId,
PersonCreatorRoleTypeId = TypeId, PersonCreatorRoleTypeId = TypeId,
}; };
public void UpdateCreatorRole(PersonCreatorRole item)
{
item.MediaId = MediaId;
item.PersonId = PersonId;
item.PersonCreatorRoleTypeId = TypeId;
}
#endregion #endregion
} }

View File

@@ -34,16 +34,37 @@ public class RolesController : ControllerBase
#region Actor #region Actor
[HttpGet("actor/{id}")]
[AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable<ActorRoleResponse>), StatusCodes.Status200OK)]
public async Task<ActionResult> GetActorRole([FromRoute]Guid id) => await _rolesControllerService.GetActorRole(id);
[HttpPut("actor/{id}")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult> PutActorRole([FromRoute]Guid id, [FromBody]ActorRoleRequest body) => await _rolesControllerService.PutActorRole(id, body);
[HttpDelete("actor/{id}")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
public async Task<ActionResult> DeleteActorRole([FromRoute]Guid id) => await _rolesControllerService.DeleteActorRole(id);
[HttpGet("actor/type")] [HttpGet("actor/type")]
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)] [ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)]
public async Task<ActionResult> GetAllActorRoleTypes(RoleTypeQueryParameters query) => await _rolesControllerService.GetAllActorRoleTypes(query); public async Task<ActionResult> GetAllActorRoleTypes(RoleTypeQueryParameters query) => await _rolesControllerService.GetAllActorRoleTypes(query);
[HttpGet("actor/type/{id}")] [HttpGet("actor/type/{type_id}")]
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(typeof(RoleTypeResponse), StatusCodes.Status200OK)] [ProducesResponseType(typeof(RoleTypeResponse), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)] [ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult> GetActorRoleType([FromRoute]short id) => await _rolesControllerService.GetActorRoleType(id); public async Task<ActionResult> GetActorRoleType([FromRoute(Name = "type_id")]short typeId) => await _rolesControllerService.GetActorRoleType(typeId);
[HttpPost("actor/type")] [HttpPost("actor/type")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
@@ -53,17 +74,38 @@ public class RolesController : ControllerBase
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
public async Task<ActionResult> PostActorRoleType([FromBody]RoleTypeRequest body) => await _rolesControllerService.PostActorRoleType(body); public async Task<ActionResult> PostActorRoleType([FromBody]RoleTypeRequest body) => await _rolesControllerService.PostActorRoleType(body);
[HttpDelete("actor/type/{id}")] [HttpDelete("actor/type/{type_id}")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)] [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ProducesResponseType(StatusCodes.Status204NoContent)] [ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)] [ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)] [ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
public async Task<ActionResult> DeleteActorRoleType([FromRoute]short id) => await _rolesControllerService.DeleteActorRoleType(id); public async Task<ActionResult> DeleteActorRoleType([FromRoute(Name = "type_id")]short typeId) => await _rolesControllerService.DeleteActorRoleType(typeId);
#endregion #endregion
#region Creator #region Creator
[HttpGet("creator/{id}")]
[AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable<CreatorRoleResponse>), StatusCodes.Status200OK)]
public async Task<ActionResult> GetCreatorRole([FromRoute]Guid id) => await _rolesControllerService.GetCreatorRole(id);
[HttpPut("creator/{id}")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult> PutCreatorRole([FromRoute]Guid id, [FromBody]CreatorRoleRequest body) => await _rolesControllerService.PutCreatorRole(id, body);
[HttpDelete("creator/{id}")]
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
[ProducesResponseType(StatusCodes.Status204NoContent)]
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
public async Task<ActionResult> DeleteCreatorRole([FromRoute]Guid id) => await _rolesControllerService.DeleteCreatorRole(id);
[HttpGet("creator/type")] [HttpGet("creator/type")]
[AllowAnonymous] [AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)] [ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)]

View File

@@ -5,13 +5,19 @@ namespace WatchIt.WebAPI.Services.Controllers.Roles;
public interface IRolesControllerService public interface IRolesControllerService
{ {
Task<RequestResult> GetActorRole(Guid id);
Task<RequestResult> PutActorRole(Guid id, ActorRoleRequest data);
Task<RequestResult> DeleteActorRole(Guid id);
Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query); Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query);
Task<RequestResult> GetActorRoleType(short id); Task<RequestResult> GetActorRoleType(short typeId);
Task<RequestResult> PostActorRoleType(RoleTypeRequest data); Task<RequestResult> PostActorRoleType(RoleTypeRequest data);
Task<RequestResult> DeleteActorRoleType(short id); Task<RequestResult> DeleteActorRoleType(short typeId);
Task<RequestResult> GetCreatorRole(Guid id);
Task<RequestResult> PutCreatorRole(Guid id, CreatorRoleRequest data);
Task<RequestResult> DeleteCreatorRole(Guid id);
Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query); Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query);
Task<RequestResult> GetCreatorRoleType(short id); Task<RequestResult> GetCreatorRoleType(short typeId);
Task<RequestResult> PostCreatorRoleType(RoleTypeRequest data); Task<RequestResult> PostCreatorRoleType(RoleTypeRequest data);
Task<RequestResult> DeleteCreatorRoleType(short id); Task<RequestResult> DeleteCreatorRoleType(short typeId);
} }

View File

@@ -34,6 +34,59 @@ public class RolesControllerService : IRolesControllerService
#region Actor #region Actor
public async Task<RequestResult> GetActorRole(Guid id)
{
PersonActorRole? item = await _database.PersonActorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NotFound();
}
ActorRoleResponse data = new ActorRoleResponse(item);
return RequestResult.Ok(data);
}
public async Task<RequestResult> PutActorRole(Guid id, ActorRoleRequest data)
{
UserValidator validator = _userService.GetValidator().MustBeAdmin();
if (!validator.IsValid)
{
return RequestResult.Forbidden();
}
PersonActorRole? item = await _database.PersonActorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NotFound();
}
data.UpdateActorRole(item);
await _database.SaveChangesAsync();
return RequestResult.Ok();
}
public async Task<RequestResult> DeleteActorRole(Guid id)
{
UserValidator validator = _userService.GetValidator().MustBeAdmin();
if (!validator.IsValid)
{
return RequestResult.Forbidden();
}
PersonActorRole? item = await _database.PersonActorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NoContent();
}
_database.PersonActorRoles.Attach(item);
_database.PersonActorRoles.Remove(item);
await _database.SaveChangesAsync();
return RequestResult.NoContent();
}
public async Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query) public async Task<RequestResult> GetAllActorRoleTypes(RoleTypeQueryParameters query)
{ {
IEnumerable<PersonActorRoleType> rawData = await _database.PersonActorRoleTypes.ToListAsync(); IEnumerable<PersonActorRoleType> rawData = await _database.PersonActorRoleTypes.ToListAsync();
@@ -92,10 +145,61 @@ public class RolesControllerService : IRolesControllerService
#endregion #endregion
#region Creator #region Creator
public async Task<RequestResult> GetCreatorRole(Guid id)
{
PersonCreatorRole? item = await _database.PersonCreatorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NotFound();
}
CreatorRoleResponse data = new CreatorRoleResponse(item);
return RequestResult.Ok(data);
}
public async Task<RequestResult> PutCreatorRole(Guid id, CreatorRoleRequest data)
{
UserValidator validator = _userService.GetValidator().MustBeAdmin();
if (!validator.IsValid)
{
return RequestResult.Forbidden();
}
PersonCreatorRole? item = await _database.PersonCreatorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NotFound();
}
data.UpdateCreatorRole(item);
await _database.SaveChangesAsync();
return RequestResult.Ok();
}
public async Task<RequestResult> DeleteCreatorRole(Guid id)
{
UserValidator validator = _userService.GetValidator().MustBeAdmin();
if (!validator.IsValid)
{
return RequestResult.Forbidden();
}
PersonCreatorRole? item = await _database.PersonCreatorRoles.FirstOrDefaultAsync(x => x.Id == id);
if (item is null)
{
return RequestResult.NoContent();
}
_database.PersonCreatorRoles.Attach(item);
_database.PersonCreatorRoles.Remove(item);
await _database.SaveChangesAsync();
return RequestResult.NoContent();
}
public async Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query) public async Task<RequestResult> GetAllCreatorRoleTypes(RoleTypeQueryParameters query)
{ {
IEnumerable<PersonCreatorRoleType> rawData = await _database.PersonCreatorRoleTypes.ToListAsync(); IEnumerable<PersonCreatorRoleType> rawData = await _database.PersonCreatorRoleTypes.ToListAsync();