Smaller adjustments on server list
This commit is contained in:
@@ -27,9 +27,9 @@ public class ServersController : Controller
|
||||
NodeService = nodeService;
|
||||
}
|
||||
|
||||
[HttpGet("list")]
|
||||
[HttpGet]
|
||||
[RequirePermission("meta.authenticated")]
|
||||
public async Task<PagedData<ServerDetailResponse>> List([FromQuery] int page, [FromQuery] int pageSize)
|
||||
public async Task<PagedData<ServerDetailResponse>> GetAll([FromQuery] int page, [FromQuery] int pageSize)
|
||||
{
|
||||
var user = User.AsIdentity<User>();
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ServersController : Controller
|
||||
.Include(x => x.Star)
|
||||
.Include(x => x.Node)
|
||||
.Where(x => x.OwnerId == user.Id);
|
||||
|
||||
|
||||
var count = await query.CountAsync();
|
||||
var items = await query.Skip(page * pageSize).Take(pageSize).ToArrayAsync();
|
||||
|
||||
@@ -56,7 +56,7 @@ public class ServersController : Controller
|
||||
IpAddress = y.IpAddress
|
||||
}).ToArray()
|
||||
}).ToArray();
|
||||
|
||||
|
||||
return new PagedData<ServerDetailResponse>()
|
||||
{
|
||||
Items = mappedItems,
|
||||
@@ -67,6 +67,33 @@ public class ServersController : Controller
|
||||
};
|
||||
}
|
||||
|
||||
[HttpGet("{serverId:int}")]
|
||||
[RequirePermission("meta.authenticated")]
|
||||
public async Task<ServerDetailResponse> Get([FromRoute] int serverId)
|
||||
{
|
||||
var server = await GetServerWithPermCheck(
|
||||
serverId,
|
||||
query =>
|
||||
query
|
||||
.Include(x => x.Allocations)
|
||||
.Include(x => x.Star)
|
||||
);
|
||||
|
||||
return new ServerDetailResponse()
|
||||
{
|
||||
Id = server.Id,
|
||||
Name = server.Name,
|
||||
NodeName = server.Node.Name,
|
||||
StarName = server.Star.Name,
|
||||
Allocations = server.Allocations.Select(y => new AllocationDetailResponse()
|
||||
{
|
||||
Id = y.Id,
|
||||
Port = y.Port,
|
||||
IpAddress = y.IpAddress
|
||||
}).ToArray()
|
||||
};
|
||||
}
|
||||
|
||||
[HttpGet("{serverId:int}/status")]
|
||||
[RequirePermission("meta.authenticated")]
|
||||
public async Task<ServerStatusResponse> GetStatus([FromRoute] int serverId)
|
||||
@@ -92,13 +119,19 @@ public class ServersController : Controller
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<Server> GetServerWithPermCheck(int serverId)
|
||||
private async Task<Server> GetServerWithPermCheck(int serverId,
|
||||
Func<IQueryable<Server>, IQueryable<Server>>? queryModifier = null)
|
||||
{
|
||||
var user = User.AsIdentity<User>();
|
||||
|
||||
var server = await ServerRepository
|
||||
|
||||
var query = ServerRepository
|
||||
.Get()
|
||||
.Include(x => x.Node)
|
||||
.Include(x => x.Node) as IQueryable<Server>;
|
||||
|
||||
if (queryModifier != null)
|
||||
query = queryModifier.Invoke(query);
|
||||
|
||||
var server = await query
|
||||
.FirstOrDefaultAsync(x => x.Id == serverId);
|
||||
|
||||
if (server == null)
|
||||
@@ -109,7 +142,7 @@ public class ServersController : Controller
|
||||
|
||||
if (User.HasPermission("admin.servers.get")) // The current user is an admin
|
||||
return server;
|
||||
|
||||
|
||||
throw new HttpApiException("No server with this id found", 404);
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
}
|
||||
|
||||
<a href="/servers/@Server.Id"
|
||||
class="w-full bg-gradient-to-r @gradient to-gray-750/65 to-25% px-5 py-3.5 rounded-xl border-l-8 @border">
|
||||
class="w-full bg-gradient-to-r @gradient to-gray-750 to-25% px-5 py-3.5 rounded-xl border-l-8 @border">
|
||||
<div class="grid grid-cols-6">
|
||||
<div class="flex items-center col-span-6 sm:col-span-2 2xl:col-span-1">
|
||||
<div class="bg-gray-900 bg-opacity-45 py-1 px-2 rounded-lg flex items-center">
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
{
|
||||
Servers = await PagedData<ServerDetailResponse>.All(async (page, pageSize) =>
|
||||
await ApiClient.GetJson<PagedData<ServerDetailResponse>>(
|
||||
$"api/servers/list?page={page}&pageSize={pageSize}"
|
||||
$"api/servers?page={page}&pageSize={pageSize}"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user