From c74fe2af97de31a88cdf3882bad809d671293c42 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 21 Jul 2021 09:04:35 +0200 Subject: [PATCH] Improved error handling. --- .../History/NotifoOptions.cs | 2 ++ .../History/NotifoService.cs | 5 +++++ backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs | 10 +++++----- .../Operations/Scripting/MockupHttpHandler.cs | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoOptions.cs b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoOptions.cs index 478063da9..fb6e7b82b 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoOptions.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoOptions.cs @@ -15,6 +15,8 @@ namespace Squidex.Domain.Apps.Entities.History public string ApiUrl { get; set; } = "https://app.notifo.io"; + public bool Debug { get; set; } + public bool IsConfigured() { return diff --git a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs index b883f1961..a1c47e7a6 100644 --- a/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs +++ b/backend/src/Squidex.Domain.Apps.Entities/History/NotifoService.cs @@ -61,6 +61,11 @@ namespace Squidex.Domain.Apps.Entities.History builder = builder.SetApiUrl(options.Value.ApiUrl); } + if (options.Value.Debug) + { + builder = builder.ReadResponseAsString(true); + } + client = builder.Build(); } } diff --git a/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs b/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs index 67a80dfd3..6f903cba2 100644 --- a/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs +++ b/backend/src/Squidex.Web/ApiExceptionFilterAttribute.cs @@ -1,4 +1,4 @@ -// ========================================================================== +// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) @@ -15,16 +15,16 @@ namespace Squidex.Web { public sealed class ApiExceptionFilterAttribute : ActionFilterAttribute, IExceptionFilter, IAsyncActionFilter { - public override async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) + public override Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) { - var resultContext = await next(); - - if (resultContext.Result is ObjectResult { Value: ProblemDetails problem }) + if (context.Result is ObjectResult objectResult && objectResult.Value is ProblemDetails problem) { var (error, _) = problem.ToErrorDto(context.HttpContext); context.Result = GetResult(error); } + + return next(); } public void OnException(ExceptionContext context) diff --git a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/MockupHttpHandler.cs b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/MockupHttpHandler.cs index 2b518993a..b4025a5b0 100644 --- a/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/MockupHttpHandler.cs +++ b/backend/tests/Squidex.Domain.Apps.Core.Tests/Operations/Scripting/MockupHttpHandler.cs @@ -54,7 +54,7 @@ namespace Squidex.Domain.Apps.Core.Operations.Scripting if (request.Content is StringContent body) { - currentContent = await body.ReadAsStringAsync(); + currentContent = await body.ReadAsStringAsync(cancellationToken); currentContentType = body.Headers.ContentType?.MediaType; }