From d3f83c70d03b7ab9e68848f86fb5b69b52f132e1 Mon Sep 17 00:00:00 2001 From: John Lambert Date: Wed, 11 Sep 2024 15:04:03 -0400 Subject: [PATCH] Gracefully handle null Bugsnag ApiKey --- .../Serval.Shared/Controllers/BugsnagExceptionFilter.cs | 4 ++++ .../SIL.ServiceToolkit/Configuration/BugsnagOptions.cs | 2 +- .../Configuration/IServiceCollectionExtensions.cs | 9 +++------ 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Serval/src/Serval.Shared/Controllers/BugsnagExceptionFilter.cs b/src/Serval/src/Serval.Shared/Controllers/BugsnagExceptionFilter.cs index f4e44541..c5f444f4 100644 --- a/src/Serval/src/Serval.Shared/Controllers/BugsnagExceptionFilter.cs +++ b/src/Serval/src/Serval.Shared/Controllers/BugsnagExceptionFilter.cs @@ -7,6 +7,10 @@ public class BugsnagExceptionFilter : ExceptionFilterAttribute public override void OnException(ExceptionContext context) { Bugsnag.IClient? client = context.HttpContext.RequestServices.GetService(); + if (client?.Configuration.ApiKey == null) + { + return; + } client?.Notify(context.Exception); } } diff --git a/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/BugsnagOptions.cs b/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/BugsnagOptions.cs index 91d96159..b12d50a4 100644 --- a/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/BugsnagOptions.cs +++ b/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/BugsnagOptions.cs @@ -4,5 +4,5 @@ public class BugsnagOptions { public const string Key = "Bugsnag"; - public string ApiKey { get; set; } = ""; + public string? ApiKey { get; set; } = null; } diff --git a/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/IServiceCollectionExtensions.cs b/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/IServiceCollectionExtensions.cs index 03cfc7b3..e00d3f4f 100644 --- a/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/IServiceCollectionExtensions.cs +++ b/src/ServiceToolkit/src/SIL.ServiceToolkit/Configuration/IServiceCollectionExtensions.cs @@ -13,13 +13,10 @@ public static IServiceCollection AddBugSnag(this IServiceCollection services, IC { Console.WriteLine("BugSnag ApiKey not available - not adding BugSnag."); } - else + services.AddBugsnag(configuration => { - services.AddBugsnag(configuration => - { - configuration.ApiKey = apiKey; - }); - } + configuration.ApiKey = apiKey; + }); return services; } }