Files
Pilz/Pilz.Net/Api/Server/ServerCapabilitiesHandler.cs
2025-10-09 07:29:35 +02:00

26 lines
741 B
C#

using Pilz.Extensions.Reflection;
using Pilz.Net.Api.Messages;
using System.Diagnostics;
namespace Pilz.Net.Api.Server;
public class ServerCapabilitiesHandler(IApiServer server) : IApiHandlerInitializer
{
public string Route { get; set; } = "/capabilities";
public virtual void Initialize()
{
server.RegisterHandler(GetType().GetMethod(nameof(GetCapabilities))!.CreateDelegate(this), new(Route, "GET"), Debugger.IsAttached);
}
public virtual ApiResult GetCapabilities(ApiRequestInfo req)
{
return ApiResult.Ok(BuildMessage(req));
}
protected virtual ApiMessage? BuildMessage(ApiRequestInfo req)
{
return new ServerCapabilitiesMessage(server?.GetEndpoints() ?? []);
}
}