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