add server status & capabilities
This commit is contained in:
31
Pilz.Net/Api/Server/ServerCapabilitiesHandler.cs
Normal file
31
Pilz.Net/Api/Server/ServerCapabilitiesHandler.cs
Normal 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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user