wip maintenance endpoint
This commit is contained in:
6
Pilz.Net/Api/Messages/MaintenanceModeMessage.cs
Normal file
6
Pilz.Net/Api/Messages/MaintenanceModeMessage.cs
Normal file
@@ -0,0 +1,6 @@
|
||||
namespace Pilz.Net.Api.Messages;
|
||||
|
||||
public class MaintenanceModeMessage : ApiMessage
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
}
|
||||
48
Pilz.Net/Api/Server/MaintenanceHandler.cs
Normal file
48
Pilz.Net/Api/Server/MaintenanceHandler.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using Pilz.Extensions.Reflection;
|
||||
using Pilz.Net.Api.Messages;
|
||||
using System.Diagnostics;
|
||||
using System.Net;
|
||||
|
||||
namespace Pilz.Net.Api.Server;
|
||||
|
||||
public class MaintenanceHandler : IApiHandlerInitializer
|
||||
{
|
||||
public string Route { get; set; } = "/maintenance";
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the maintenance mode
|
||||
/// </summary>
|
||||
public bool MaintenanceEnabled { get; set; }
|
||||
|
||||
public void Initialize(IApiServer server)
|
||||
{
|
||||
server.OnCheckContext += Server_OnCheckContext;
|
||||
server.RegisterHandler(GetType().GetMethod(nameof(GetMaintenance))!.CreateDelegate(this), new(Route, "GET"), Debugger.IsAttached);
|
||||
}
|
||||
|
||||
public virtual ApiResult SetMaintenance(ApiRequestInfo req, bool enable)
|
||||
{
|
||||
MaintenanceEnabled = enable;
|
||||
return ApiResult.Ok(new MaintenanceModeMessage
|
||||
{
|
||||
Enabled = MaintenanceEnabled,
|
||||
});
|
||||
}
|
||||
|
||||
public virtual ApiResult GetMaintenance(ApiRequestInfo req)
|
||||
{
|
||||
return ApiResult.Ok(new MaintenanceModeMessage
|
||||
{
|
||||
Enabled = MaintenanceEnabled,
|
||||
});
|
||||
}
|
||||
|
||||
private void Server_OnCheckContext(object sender, ApiContextEventArgs e)
|
||||
{
|
||||
if (MaintenanceEnabled)
|
||||
{
|
||||
|
||||
// ...
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user