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); } } }