champion picked items by patch
Some checks are pending
ci / docker (push) Waiting to run

This commit is contained in:
Álvaro 2024-06-16 16:04:38 +02:00
parent 1414439ceb
commit 7a613ac191
2 changed files with 12 additions and 9 deletions

View File

@ -51,14 +51,14 @@ defmodule LolAnalytics.Facts.ChampionPickedItem.Repo do
|> Repo.insert_or_update()
end
@spec get_champion_picked_items(String.t(), String.t()) :: list()
def get_champion_picked_items(champion_id, team_position) do
@spec get_champion_picked_items(String.t(), String.t(), String.t()) :: list()
def get_champion_picked_items(champion_id, team_position, patch_number) do
query =
from f in Schema,
where:
f.champion_id == ^champion_id and
f.team_position == ^team_position and
f.item_id != 0,
f.item_id != 0 and f.patch_number == ^patch_number,
join: c in ChampionSchema,
on: c.champion_id == f.champion_id,
join: i in ItemSchema,

View File

@ -13,15 +13,15 @@ defmodule LoLAnalyticsWeb.ChampionLive.Show do
end
@impl true
def handle_params(%{"id" => id, "team-position" => team_position}, _, socket) do
def handle_params(%{"id" => id, "team-position" => team_position, "patch" => patch}, _, socket) do
{:noreply,
socket
|> assign(:page_title, page_title(socket.assigns.live_action))
|> assign(:champion, load_champion_info(id) |> ShowMapper.map_champion())
|> assign(:champion, load_champion_info(id))
|> assign(:summoner_spells, %{
summoner_spells: load_summoner_spells(id, team_position) |> ShowMapper.map_spells()
summoner_spells: load_summoner_spells(id, team_position)
})
|> load_items(id, team_position)}
|> load_items(id, team_position, patch)}
end
defp load_summoner_spells(champion_id, team_position) do
@ -29,13 +29,15 @@ defmodule LoLAnalyticsWeb.ChampionLive.Show do
champion_id,
team_position
)
|> ShowMapper.map_spells()
end
defp load_items(socket, champion_id, team_position) do
defp load_items(socket, champion_id, team_position, patch) do
items =
LolAnalytics.Facts.ChampionPickedItem.Repo.get_champion_picked_items(
champion_id,
team_position
team_position,
patch
)
all_items_mapped = items |> ShowMapper.map_items() |> Enum.take(30)
@ -48,6 +50,7 @@ defmodule LoLAnalyticsWeb.ChampionLive.Show do
defp load_champion_info(champion_id) do
LolAnalytics.Dimensions.Champion.ChampionRepo.get_or_create(champion_id)
|> ShowMapper.map_champion()
end
defp page_title(:show), do: "Show Champion"