From 2d6ab5646c2a66b8ae6b072a43293e2a2100a36f Mon Sep 17 00:00:00 2001 From: guarzo Date: Tue, 4 Feb 2025 10:11:41 -0700 Subject: [PATCH] fix: include category param in search cache key (#144) --- lib/wanderer_app/esi/api_client.ex | 33 +++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/lib/wanderer_app/esi/api_client.ex b/lib/wanderer_app/esi/api_client.ex index 55bd594f..1e254177 100644 --- a/lib/wanderer_app/esi/api_client.ex +++ b/lib/wanderer_app/esi/api_client.ex @@ -353,20 +353,29 @@ defmodule WandererApp.Esi.ApiClient do def get_character_ship(character_eve_id, opts \\ []), do: _get_character_auth_data(character_eve_id, "ship", opts) - def search(character_eve_id, opts \\ []), - do: _search(character_eve_id, opts[:params][:search], opts) + def search(character_eve_id, opts \\ []) do + search_val = to_string(opts[:params][:search] || "") + categories_val = to_string(opts[:params][:categories] || "character,alliance,corporation") + + query_params = [ + {"search", search_val}, + {"categories", categories_val}, + {"language", "en-us"}, + {"strict", "false"}, + {"datasource", "tranquility"} + ] + + merged_opts = Keyword.put(opts, :params, query_params) + _search(character_eve_id, search_val, categories_val, merged_opts) + end @decorate cacheable( - cache: Cache, - key: "search-#{character_eve_id}-#{search |> Slug.slugify()}", - opts: [ttl: @ttl] - ) - defp _search(character_eve_id, search, opts \\ []) when is_binary(search) do - _get_character_auth_data( - character_eve_id, - "search", - opts - ) + cache: Cache, + key: "search-#{character_eve_id}-#{categories_val}-#{search_val |> Slug.slugify()}", + opts: [ttl: @ttl] + ) + defp _search(character_eve_id, search_val, categories_val, merged_opts) do + _get_character_auth_data(character_eve_id, "search", merged_opts) end defp _remove_intersection(pairs_arr) do