roles endpoints in roles controller added
This commit is contained in:
@@ -25,6 +25,14 @@ public class ActorRoleRequest : ActorRole, IActorRoleMediaRequest, IActorRolePer
|
||||
PersonActorRoleTypeId = TypeId,
|
||||
RoleName = Name,
|
||||
};
|
||||
|
||||
public void UpdateActorRole(PersonActorRole item)
|
||||
{
|
||||
item.MediaId = MediaId;
|
||||
item.PersonId = PersonId;
|
||||
item.PersonActorRoleTypeId = TypeId;
|
||||
item.RoleName = Name;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -24,6 +24,13 @@ public class CreatorRoleRequest : CreatorRole, ICreatorRoleMediaRequest, ICreato
|
||||
PersonId = PersonId,
|
||||
PersonCreatorRoleTypeId = TypeId,
|
||||
};
|
||||
|
||||
public void UpdateCreatorRole(PersonCreatorRole item)
|
||||
{
|
||||
item.MediaId = MediaId;
|
||||
item.PersonId = PersonId;
|
||||
item.PersonCreatorRoleTypeId = TypeId;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
@@ -34,16 +34,37 @@ public class RolesController : ControllerBase
|
||||
|
||||
#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")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)]
|
||||
public async Task<ActionResult> GetAllActorRoleTypes(RoleTypeQueryParameters query) => await _rolesControllerService.GetAllActorRoleTypes(query);
|
||||
|
||||
[HttpGet("actor/type/{id}")]
|
||||
[HttpGet("actor/type/{type_id}")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType(typeof(RoleTypeResponse), StatusCodes.Status200OK)]
|
||||
[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")]
|
||||
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
|
||||
@@ -53,17 +74,38 @@ public class RolesController : ControllerBase
|
||||
[ProducesResponseType(typeof(void), StatusCodes.Status403Forbidden)]
|
||||
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)]
|
||||
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
||||
[ProducesResponseType(typeof(void), StatusCodes.Status401Unauthorized)]
|
||||
[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
|
||||
|
||||
#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")]
|
||||
[AllowAnonymous]
|
||||
[ProducesResponseType(typeof(IEnumerable<RoleTypeResponse>), StatusCodes.Status200OK)]
|
||||
|
||||
@@ -5,13 +5,19 @@ namespace WatchIt.WebAPI.Services.Controllers.Roles;
|
||||
|
||||
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> GetActorRoleType(short id);
|
||||
Task<RequestResult> GetActorRoleType(short typeId);
|
||||
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> GetCreatorRoleType(short id);
|
||||
Task<RequestResult> GetCreatorRoleType(short typeId);
|
||||
Task<RequestResult> PostCreatorRoleType(RoleTypeRequest data);
|
||||
Task<RequestResult> DeleteCreatorRoleType(short id);
|
||||
Task<RequestResult> DeleteCreatorRoleType(short typeId);
|
||||
}
|
||||
@@ -34,6 +34,59 @@ public class RolesControllerService : IRolesControllerService
|
||||
|
||||
#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)
|
||||
{
|
||||
IEnumerable<PersonActorRoleType> rawData = await _database.PersonActorRoleTypes.ToListAsync();
|
||||
@@ -92,10 +145,61 @@ public class RolesControllerService : IRolesControllerService
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#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)
|
||||
{
|
||||
IEnumerable<PersonCreatorRoleType> rawData = await _database.PersonCreatorRoleTypes.ToListAsync();
|
||||
|
||||
Reference in New Issue
Block a user