From dcc33ac513cd78a4b537ec6a248bb2f2bad49982 Mon Sep 17 00:00:00 2001 From: Maksym Sadovnychyy Date: Sun, 26 Oct 2025 12:53:26 +0100 Subject: [PATCH] (refactor): dedup error message handling --- .../Services/LetsEncryptService.cs | 65 +++++++------------ 1 file changed, 23 insertions(+), 42 deletions(-) diff --git a/src/LetsEncrypt/Services/LetsEncryptService.cs b/src/LetsEncrypt/Services/LetsEncryptService.cs index e11f7d3..423b114 100644 --- a/src/LetsEncrypt/Services/LetsEncryptService.cs +++ b/src/LetsEncrypt/Services/LetsEncryptService.cs @@ -138,15 +138,10 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok("Client configured successfully."); } catch (LetsEncrytException ex) { - List messages = ["Let's Encrypt client encountered a problem"]; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex, "Let's Encrypt client encountered a problem"); } catch (Exception ex) { - const string message = "Let's Encrypt client unhandled exception"; - _logger.LogError(ex, message); - return Result.InternalServerError(message); + return HandleUnhandledException(ex); } } #endregion @@ -231,15 +226,10 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok("Initialization successful."); } catch (LetsEncrytException ex) { - List messages = ["Let's Encrypt client encountered a problem"]; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex, "Let's Encrypt client encountered a problem"); } catch (Exception ex) { - const string message = "Let's Encrypt client unhandled exception"; - _logger.LogError(ex, message); - return Result.InternalServerError(message); + return HandleUnhandledException(ex); } } #endregion @@ -267,10 +257,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok(state.Directory.Meta.TermsOfService); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError(null, [.. messages]); + return HandleUnhandledException(ex); } } #endregion @@ -383,10 +370,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result?>.Ok(results); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result?>.InternalServerError(null, [.. messages]); + return HandleUnhandledException?>(ex); } } #endregion @@ -431,10 +415,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok(); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex); } } #endregion @@ -472,10 +453,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok(); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex); } } #endregion @@ -596,10 +574,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok(); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex); } } #endregion @@ -672,10 +647,7 @@ public class LetsEncryptService : ILetsEncryptService { } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError([.. messages]); + return HandleUnhandledException(ex); } } @@ -714,10 +686,7 @@ public class LetsEncryptService : ILetsEncryptService { return Result.Ok(nonce); } catch (Exception ex) { - List messages = new List { "Let's Encrypt client unhandled exception" }; - _logger.LogError(ex, messages.FirstOrDefault()); - messages.Add(ex.Message); - return Result.InternalServerError(null, [.. messages]); + return HandleUnhandledException(ex); } } @@ -770,4 +739,16 @@ public class LetsEncryptService : ILetsEncryptService { // Helper for status comparison private static bool StatusEquals(string? status, OrderStatus expected) => status == expected.GetDisplayName(); + + private Result HandleUnhandledException(Exception ex, string defaultMessage = "Let's Encrypt client unhandled exception") { + List messages = new() { defaultMessage }; + _logger.LogError(ex, messages.FirstOrDefault()); + return Result.InternalServerError([.. messages]); + } + + private Result HandleUnhandledException(Exception ex, T? defaultValue = default, string defaultMessage = "Let's Encrypt client unhandled exception") { + List messages = new() { defaultMessage }; + _logger.LogError(ex, messages.FirstOrDefault()); + return Result.InternalServerError(defaultValue, [.. messages]); + } }