chore(growth): add separated method to merge genders data

This makes easier to test aggregation logic for multiple gender
configuration.
This commit is contained in:
João Paulo Dubas 2024-10-07 19:22:14 +00:00
parent c77d4eb97d
commit 0fc8c56c41
Signed by: joao.dubas
SSH Key Fingerprint: SHA256:V1mixgOGRc/YMhGx/DNkOSmJxgA2vHNrDZEk3wt/kOA

View File

@ -205,13 +205,17 @@ defmodule Growth.Indicators.Download do
|> Task.await_many() |> Task.await_many()
end end
def process_measure( def process_measure({measure, urls}) do
{measure, urls
%{ |> process_genders()
female: %{age_tables: female_urls, expanded_tables: e_female_urls}, |> as_csv()
male: %{age_tables: male_urls, expanded_tables: e_male_urls} |> save(measure)
}} end
) do
def process_genders(%{
female: %{age_tables: female_urls, expanded_tables: e_female_urls},
male: %{age_tables: male_urls, expanded_tables: e_male_urls}
}) do
[ [
{:female, :age, female_urls}, {:female, :age, female_urls},
{:male, :age, male_urls}, {:male, :age, male_urls},
@ -221,8 +225,6 @@ defmodule Growth.Indicators.Download do
|> Enum.map(&Task.async(__MODULE__, :process_gender, [&1])) |> Enum.map(&Task.async(__MODULE__, :process_gender, [&1]))
|> Task.await_many() |> Task.await_many()
|> merge() |> merge()
|> as_csv()
|> save(measure)
end end
def process_gender({gender, category, urls}) do def process_gender({gender, category, urls}) do