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() |> Repo.insert_or_update()
end end
@spec get_champion_picked_items(String.t(), String.t()) :: list() @spec get_champion_picked_items(String.t(), String.t(), String.t()) :: list()
def get_champion_picked_items(champion_id, team_position) do def get_champion_picked_items(champion_id, team_position, patch_number) do
query = query =
from f in Schema, from f in Schema,
where: where:
f.champion_id == ^champion_id and f.champion_id == ^champion_id and
f.team_position == ^team_position 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, join: c in ChampionSchema,
on: c.champion_id == f.champion_id, on: c.champion_id == f.champion_id,
join: i in ItemSchema, join: i in ItemSchema,

View File

@ -13,15 +13,15 @@ defmodule LoLAnalyticsWeb.ChampionLive.Show do
end end
@impl true @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, {:noreply,
socket socket
|> assign(:page_title, page_title(socket.assigns.live_action)) |> 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, %{ |> 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 end
defp load_summoner_spells(champion_id, team_position) do defp load_summoner_spells(champion_id, team_position) do
@ -29,13 +29,15 @@ defmodule LoLAnalyticsWeb.ChampionLive.Show do
champion_id, champion_id,
team_position team_position
) )
|> ShowMapper.map_spells()
end end
defp load_items(socket, champion_id, team_position) do defp load_items(socket, champion_id, team_position, patch) do
items = items =
LolAnalytics.Facts.ChampionPickedItem.Repo.get_champion_picked_items( LolAnalytics.Facts.ChampionPickedItem.Repo.get_champion_picked_items(
champion_id, champion_id,
team_position team_position,
patch
) )
all_items_mapped = items |> ShowMapper.map_items() |> Enum.take(30) 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 defp load_champion_info(champion_id) do
LolAnalytics.Dimensions.Champion.ChampionRepo.get_or_create(champion_id) LolAnalytics.Dimensions.Champion.ChampionRepo.get_or_create(champion_id)
|> ShowMapper.map_champion()
end end
defp page_title(:show), do: "Show Champion" defp page_title(:show), do: "Show Champion"