add server status & capabilities

This commit is contained in:
Pilzinsel64
2025-06-13 09:21:04 +02:00
parent 00bd2e62e8
commit 6f44ab32f0
7 changed files with 108 additions and 18 deletions

View File

@@ -0,0 +1,31 @@
using Pilz.Extensions.Reflection;
using Pilz.Net.Api.Messages;
using System.Diagnostics;
namespace Pilz.Net.Api.Server;
public class ServerCapabilitiesHandler : IApiHandlerInitializer
{
protected IApiServer? server;
public string Route { get; set; } = "/capabilities";
public virtual void Initialize(IApiServer server)
{
this.server = server;
server.RegisterHandler(GetType().GetMethod(nameof(GetCapabilities))!.CreateDelegate(this), new(Route, "GET"), Debugger.IsAttached);
}
public virtual ApiResult GetCapabilities(ApiRequestInfo req)
{
var msg = BuildMessage(req);
if (server is ServerCapabilitiesMessage message)
message.Endpoints.AddRange(server.GetEndpoints());
return ApiResult.Ok(msg);
}
protected virtual ApiMessage? BuildMessage(ApiRequestInfo req)
{
return new ServerCapabilitiesMessage();
}
}