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

@@ -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);
}

View File

@@ -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();