create behaviour for fact processor
Some checks are pending
ci / docker (push) Waiting to run

This commit is contained in:
Álvaro Girona Arias 2024-06-13 15:36:57 +02:00
parent 7e30db3864
commit f79f0db862
4 changed files with 15 additions and 9 deletions

View File

@ -1,8 +1,12 @@
defmodule LolAnalytics.Facts.ChampionPickedSummonerSpell.FactProcessor do
@behaviour LolAnalytics.Facts.FactBehaviour
require Logger
alias LolAnalytics.Facts.ChampionPickedSummonerSpell
@impl true
@spec process_game_at_url(String.t()) :: any()
def process_game_at_url(url) do
data = HTTPoison.get!(url)
process_game_data(data.body)

View File

@ -37,15 +37,14 @@ defmodule LolAnalytics.Facts.ChampionPickedSummonerSpell.Repo do
)
|> Repo.one()
changeset = Schema.changeset(prev || %Schema{}, attrs)
Repo.insert_or_update(changeset)
Schema.changeset(prev || %Schema{}, attrs)
|> Repo.insert_or_update()
end
def get_champion_picked_summoners(championId, team_position \\ "MIDDLE") do
def get_champion_picked_summoners(champion_id, team_position \\ "MIDDLE") do
query =
from f in Schema,
where: f.champion_id == ^championId and f.team_position == ^team_position,
where: f.champion_id == ^champion_id and f.team_position == ^team_position,
join: c in ChampionSchema,
on: c.champion_id == f.champion_id,
join: s in SummonerSpellSchema,
@ -59,10 +58,8 @@ defmodule LolAnalytics.Facts.ChampionPickedSummonerSpell.Repo do
)",
f.is_win
),
id: f.champion_id,
spell_id: f.summoner_spell_id,
metadata: s.metadata,
champion_name: c.name,
champion_id: c.champion_id,
team_position: f.team_position,
total_games: count("*")
@ -71,8 +68,6 @@ defmodule LolAnalytics.Facts.ChampionPickedSummonerSpell.Repo do
f.champion_id,
f.summoner_spell_id,
s.metadata,
c.image,
c.name,
c.champion_id,
f.team_position
]

View File

@ -1,6 +1,10 @@
defmodule LolAnalytics.Facts.ChampionPlayedGame.FactProcessor do
require Logger
@behaviour LolAnalytics.Facts.FactBehaviour
@impl true
@spec process_game_at_url(String.t()) :: none()
def process_game_at_url(path) do
data = HTTPoison.get!(path)
process_game_data(data.body)

View File

@ -0,0 +1,3 @@
defmodule LolAnalytics.Facts.FactBehaviour do
@callback process_game_at_url(String.t()) :: any()
end