From 665a392b5adcbbeacd2730a6b43e9352187c5548 Mon Sep 17 00:00:00 2001 From: LD-Reborn Date: Thu, 25 Dec 2025 15:25:23 +0100 Subject: [PATCH] Fixed redundant Searchdomain retrieval error messages --- .../Controllers/SearchdomainController.cs | 170 ++++-------------- src/Server/Helper/SearchdomainHelper.cs | 17 ++ 2 files changed, 48 insertions(+), 139 deletions(-) diff --git a/src/Server/Controllers/SearchdomainController.cs b/src/Server/Controllers/SearchdomainController.cs index 286d8b5..a89c0b1 100644 --- a/src/Server/Controllers/SearchdomainController.cs +++ b/src/Server/Controllers/SearchdomainController.cs @@ -87,71 +87,38 @@ public class SearchdomainController : ControllerBase [HttpGet("Update")] public ActionResult Update(string searchdomain, string newName, string settings = "{}") { - try + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); + Dictionary parameters = new() { - Searchdomain searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - Dictionary parameters = new() - { - {"name", newName}, - {"settings", settings}, - {"id", searchdomain_.id} - }; - searchdomain_.helper.ExecuteSQLNonQuery("UPDATE searchdomain set name = @name, settings = @settings WHERE id = @id", parameters); - } catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to update searchdomain {searchdomain} - not found", [searchdomain]); - return Ok(new SearchdomainUpdateResults() { Success = false, Message = $"Unable to update searchdomain {searchdomain} - not found" }); - } catch (Exception ex) - { - _logger.LogError("Unable to update searchdomain {searchdomain} - Exception: {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainUpdateResults() { Success = false, Message = $"Unable to update searchdomain {searchdomain}" }); - } + {"name", newName}, + {"settings", settings}, + {"id", searchdomain_.id} + }; + searchdomain_.helper.ExecuteSQLNonQuery("UPDATE searchdomain set name = @name, settings = @settings WHERE id = @id", parameters); return Ok(new SearchdomainUpdateResults(){Success = true}); } [HttpPost("UpdateSettings")] public ActionResult UpdateSettings(string searchdomain, [FromBody] SearchdomainSettings request) { - try + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); + Dictionary parameters = new() { - Searchdomain searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - Dictionary parameters = new() - { - {"settings", JsonSerializer.Serialize(request)}, - {"id", searchdomain_.id} - }; - searchdomain_.helper.ExecuteSQLNonQuery("UPDATE searchdomain set settings = @settings WHERE id = @id", parameters); - searchdomain_.settings = request; - } catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to update settings for searchdomain {searchdomain} - not found", [searchdomain]); - return Ok(new SearchdomainUpdateResults() { Success = false, Message = $"Unable to update settings for searchdomain {searchdomain} - not found" }); - } catch (Exception ex) - { - _logger.LogError("Unable to update settings for searchdomain {searchdomain} - Exception: {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainUpdateResults() { Success = false, Message = $"Unable to update settings for searchdomain {searchdomain}" }); - } + {"settings", JsonSerializer.Serialize(request)}, + {"id", searchdomain_.id} + }; + searchdomain_.helper.ExecuteSQLNonQuery("UPDATE searchdomain set settings = @settings WHERE id = @id", parameters); + searchdomain_.settings = request; return Ok(new SearchdomainUpdateResults(){Success = true}); } [HttpGet("GetSearches")] public ActionResult GetSearches(string searchdomain) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainSearchesResults() { Searches = [], Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainSearchesResults() { Searches = [], Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); Dictionary searchCache = searchdomain_.searchCache; return Ok(new SearchdomainSearchesResults() { Searches = searchCache, Success = true }); @@ -160,21 +127,8 @@ public class SearchdomainController : ControllerBase [HttpDelete("Searches")] public ActionResult DeleteSearch(string searchdomain, string query) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainDeleteSearchResult() { Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainDeleteSearchResult() { Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); Dictionary searchCache = searchdomain_.searchCache; bool containsKey = searchCache.ContainsKey(query); if (containsKey) @@ -188,21 +142,8 @@ public class SearchdomainController : ControllerBase [HttpPatch("Searches")] public ActionResult UpdateSearch(string searchdomain, string query, [FromBody]List results) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainUpdateSearchResult() { Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainUpdateSearchResult() { Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); Dictionary searchCache = searchdomain_.searchCache; bool containsKey = searchCache.ContainsKey(query); if (containsKey) @@ -218,21 +159,8 @@ public class SearchdomainController : ControllerBase [HttpGet("GetSettings")] public ActionResult GetSettings(string searchdomain) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainSettingsResults() { Settings = null, Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainSettingsResults() { Settings = null, Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); SearchdomainSettings settings = searchdomain_.settings; return Ok(new SearchdomainSettingsResults() { Settings = settings, Success = true }); } @@ -240,21 +168,8 @@ public class SearchdomainController : ControllerBase [HttpGet("GetSearchCacheSize")] public ActionResult GetSearchCacheSize(string searchdomain) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainSearchCacheSizeResults() { SearchCacheSizeBytes = null, Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainSearchCacheSizeResults() { SearchCacheSizeBytes = null, Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); Dictionary searchCache = searchdomain_.searchCache; long sizeInBytes = 0; foreach (var entry in searchCache) @@ -269,40 +184,17 @@ public class SearchdomainController : ControllerBase [HttpGet("ClearSearchCache")] public ActionResult InvalidateSearchCache(string searchdomain) { - try - { - Searchdomain searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - searchdomain_.InvalidateSearchCache(); - } catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to invalidate search cache for searchdomain {searchdomain} - not found", [searchdomain]); - return Ok(new SearchdomainInvalidateCacheResults() { Success = false, Message = $"Unable to invalidate search cache for searchdomain {searchdomain} - not found" }); - } catch (Exception ex) - { - _logger.LogError("Unable to invalidate search cache for searchdomain {searchdomain} - Exception: {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainInvalidateCacheResults() { Success = false, Message = $"Unable to invalidate search cache for searchdomain {searchdomain}" }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); + searchdomain_.InvalidateSearchCache(); return Ok(new SearchdomainInvalidateCacheResults(){Success = true}); } [HttpGet("GetDatabaseSize")] public ActionResult GetDatabaseSize(string searchdomain) { - Searchdomain searchdomain_; - try - { - searchdomain_ = _domainManager.GetSearchdomain(searchdomain); - } - catch (SearchdomainNotFoundException) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - it likely does not exist yet", [searchdomain]); - return Ok(new SearchdomainGetDatabaseSizeResult() { SearchdomainDatabaseSizeBytes = null, Success = false, Message = "Searchdomain not found" }); - } - catch (Exception ex) - { - _logger.LogError("Unable to retrieve the searchdomain {searchdomain} - {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); - return Ok(new SearchdomainGetDatabaseSizeResult() { SearchdomainDatabaseSizeBytes = null, Success = false, Message = ex.Message }); - } + (Searchdomain? searchdomain_, int? httpStatusCode, string? message) = SearchdomainHelper.TryGetSearchdomain(_domainManager, searchdomain, _logger); + if (searchdomain_ is null || httpStatusCode is not null) return StatusCode(httpStatusCode ?? 500, new SearchdomainUpdateResults(){Success = false, Message = message}); long sizeInBytes = DatabaseHelper.GetSearchdomainDatabaseSize(searchdomain_.helper, searchdomain); return Ok(new SearchdomainGetDatabaseSizeResult() { SearchdomainDatabaseSizeBytes = sizeInBytes, Success = true }); } diff --git a/src/Server/Helper/SearchdomainHelper.cs b/src/Server/Helper/SearchdomainHelper.cs index 96727cf..3409ba4 100644 --- a/src/Server/Helper/SearchdomainHelper.cs +++ b/src/Server/Helper/SearchdomainHelper.cs @@ -269,4 +269,21 @@ public class SearchdomainHelper(ILogger logger, DatabaseHelp var similarityMethod = new SimilarityMethod(jsonDatapoint.SimilarityMethod, logger) ?? throw new SimilarityMethodNotFoundException(jsonDatapoint.SimilarityMethod); return new Datapoint(jsonDatapoint.Name, probMethod_embedding, similarityMethod, hash, [.. embeddings.Select(kv => (kv.Key, kv.Value))]); } + + public static (Searchdomain?, int?, string?) TryGetSearchdomain(SearchdomainManager searchdomainManager, string searchdomain, ILogger logger) + { + try + { + Searchdomain searchdomain_ = searchdomainManager.GetSearchdomain(searchdomain); + return (searchdomain_, null, null); + } catch (SearchdomainNotFoundException) + { + logger.LogError("Unable to update searchdomain {searchdomain} - not found", [searchdomain]); + return (null, 500, $"Unable to update searchdomain {searchdomain} - not found"); + } catch (Exception ex) + { + logger.LogError("Unable to update searchdomain {searchdomain} - Exception: {ex.Message} - {ex.StackTrace}", [searchdomain, ex.Message, ex.StackTrace]); + return (null, 404, $"Unable to update searchdomain {searchdomain}"); + } + } } \ No newline at end of file