d70d81ebdf
OneDrive Backup
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using hassio_onedrive_backup;
|
|
using Microsoft.Extensions.Primitives;
|
|
using onedrive_backup.Hass;
|
|
|
|
namespace onedrive_backup.Middleware
|
|
{
|
|
public class ExtractHassUrlMiddleware
|
|
{
|
|
private readonly RequestDelegate _next;
|
|
private HassContext _ingressSettings;
|
|
private IHostEnvironment _env;
|
|
|
|
public ExtractHassUrlMiddleware(RequestDelegate next, HassContext ingressSettings, IHostEnvironment env)
|
|
{
|
|
_next = next;
|
|
_ingressSettings = ingressSettings;
|
|
_env = env;
|
|
}
|
|
|
|
public async Task InvokeAsync(HttpContext context)
|
|
{
|
|
const string HeaderKeyName = "X-Ingress-Path";
|
|
if (context.Request.Headers.TryGetValue(HeaderKeyName, out StringValues headerValue))
|
|
{
|
|
_ingressSettings.HeaderIngressPath = headerValue.ToString();
|
|
ConsoleLogger.LogInfo($"X-Ingress-Path: {_ingressSettings.HeaderIngressPath}");
|
|
}
|
|
else if (_env.IsDevelopment())
|
|
{
|
|
_ingressSettings.HeaderIngressPath = "/";
|
|
}
|
|
|
|
await _next(context);
|
|
}
|
|
}
|
|
}
|