From f509c53836c31743133982906da62804df3981e1 Mon Sep 17 00:00:00 2001 From: Pilzinsel64 Date: Fri, 16 Aug 2024 10:01:57 +0200 Subject: [PATCH] minor fixes --- Pilz.Net/Api/ApiResult.cs | 2 ++ Pilz.Net/Api/ApiServer.cs | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Pilz.Net/Api/ApiResult.cs b/Pilz.Net/Api/ApiResult.cs index 5f51a6a..1f22287 100644 --- a/Pilz.Net/Api/ApiResult.cs +++ b/Pilz.Net/Api/ApiResult.cs @@ -23,4 +23,6 @@ public record class ApiResult( public static ApiResult ServiceUnavailable() => new(HttpStatusCode.ServiceUnavailable); public static ApiResult UnavailableForLegalReasons() => new(HttpStatusCode.UnavailableForLegalReasons); + + public static ApiResult InternalServerError() => new(HttpStatusCode.InternalServerError); } \ No newline at end of file diff --git a/Pilz.Net/Api/ApiServer.cs b/Pilz.Net/Api/ApiServer.cs index d54577d..3c720f4 100644 --- a/Pilz.Net/Api/ApiServer.cs +++ b/Pilz.Net/Api/ApiServer.cs @@ -159,6 +159,8 @@ public class ApiServer(string apiUrl) : IApiServer isAuthenticated = CheckAuthentication(authKeyDecoded); else authKeyDecoded = null!; + if (attribute.RequiesAuth && !isAuthenticated) + return new(ApiResult.Unauthorized(), null); // Get required infos Log.Debug("Find other infos"); @@ -177,7 +179,7 @@ public class ApiServer(string apiUrl) : IApiServer Log.Debug("Invoke handler"); var parameters = BuildParameters(handler, () => message, () => new(message, isAuthenticated, authKeyDecoded)); if (handler.DynamicInvoke(parameters) is not ApiResult result) - return null; + return new(ApiResult.InternalServerError(), null); // Return result without message Log.Debug("Check message"); @@ -187,10 +189,10 @@ public class ApiServer(string apiUrl) : IApiServer // Serializer Log.Debug("Serialize message"); if (serializer.Serialize(result.Message) is not string resultStr) - return null; + return new(ApiResult.InternalServerError(), null); // Return result with message - Log.Debug("Finish result"); + Log.Debug("Complete result"); return new(result, resultStr); }