diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e0e15f..773d92b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## [Unreleased] + +### Added + +- [TD-7175] Added search domain in cache by name + ## [7.7.0] 2025-06-20 ### Added diff --git a/lib/td_cache/domain_cache.ex b/lib/td_cache/domain_cache.ex index 19c7a70..9750fae 100644 --- a/lib/td_cache/domain_cache.ex +++ b/lib/td_cache/domain_cache.ex @@ -149,6 +149,22 @@ defmodule TdCache.DomainCache do end end + def get_by_name(name) when is_binary(name) do + case Redix.command(["HGETALL", @ids_to_names_key]) do + {:ok, data} -> + data + |> Enum.chunk_every(2) + |> Enum.find(fn [_id, stored_name] -> stored_name == name end) + |> case do + [id, _] -> {:ok, read_domain(id)} + _ -> {:error, :not_found} + end + + _ -> + {:error, :redis_failure} + end + end + defp get_deleted_domains do case Redix.command(["SMEMBERS", @deleted_ids]) do {:ok, ids} -> Enum.map(ids, &String.to_integer/1)