rename Ammo.get_average_cost and Ammo.get_historical_count

This commit is contained in:
2023-06-05 22:48:58 -04:00
parent 9edeb1e803
commit a35f43d6df
6 changed files with 46 additions and 50 deletions

View File

@ -132,17 +132,17 @@ defmodule Cannery.Ammo do
## Examples
iex> get_average_cost_for_type(
iex> get_average_cost(
...> %Type{id: 123, user_id: 456},
...> %User{id: 456}
...> )
1.50
"""
@spec get_average_cost_for_type(Type.t(), User.t()) :: float() | nil
def get_average_cost_for_type(%Type{id: type_id} = type, user) do
@spec get_average_cost(Type.t(), User.t()) :: float() | nil
def get_average_cost(%Type{id: type_id} = type, user) do
[type]
|> get_average_cost_for_types(user)
|> get_average_costs(user)
|> Map.get(type_id)
end
@ -152,16 +152,16 @@ defmodule Cannery.Ammo do
## Examples
iex> get_average_cost_for_types(
iex> get_average_costs(
...> [%Type{id: 123, user_id: 456}],
...> %User{id: 456}
...> )
1.50
"""
@spec get_average_cost_for_types([Type.t()], User.t()) ::
@spec get_average_costs([Type.t()], User.t()) ::
%{optional(Type.id()) => float()}
def get_average_cost_for_types(types, %User{id: user_id}) do
def get_average_costs(types, %User{id: user_id}) do
type_ids =
types
|> Enum.map(fn %Type{id: type_id, user_id: ^user_id} -> type_id end)
@ -289,17 +289,17 @@ defmodule Cannery.Ammo do
## Examples
iex> get_historical_count_for_type(
iex> get_historical_count(
...> %Type{id: 123, user_id: 456},
...> %User{id: 456}
...> )
5
"""
@spec get_historical_count_for_type(Type.t(), User.t()) :: non_neg_integer()
def get_historical_count_for_type(%Type{id: type_id} = type, user) do
@spec get_historical_count(Type.t(), User.t()) :: non_neg_integer()
def get_historical_count(%Type{id: type_id} = type, user) do
[type]
|> get_historical_count_for_types(user)
|> get_historical_counts(user)
|> Map.get(type_id, 0)
end
@ -308,16 +308,16 @@ defmodule Cannery.Ammo do
## Examples
iex> get_historical_count_for_types(
iex> get_historical_counts(
...> [%Type{id: 123, user_id: 456}],
...> %User{id: 456}
...> )
%{123 => 5}
"""
@spec get_historical_count_for_types([Type.t()], User.t()) ::
@spec get_historical_counts([Type.t()], User.t()) ::
%{optional(Type.id()) => non_neg_integer()}
def get_historical_count_for_types(types, %User{id: user_id} = user) do
def get_historical_counts(types, %User{id: user_id} = user) do
used_counts = ActivityLog.get_grouped_used_counts(user, types: types, group_by: :type_id)
round_counts = get_grouped_round_count(user, types: types, group_by: :type_id)

View File

@ -153,13 +153,13 @@ defmodule CanneryWeb.Components.TypeTableComponent do
round_counts = Ammo.get_grouped_round_count(current_user, types: types, group_by: :type_id)
packs_count = Ammo.get_grouped_packs_count(current_user, types: types, group_by: :type_id)
average_costs = types |> Ammo.get_average_cost_for_types(current_user)
average_costs = Ammo.get_average_costs(types, current_user)
[used_counts, historical_round_counts, historical_pack_counts, used_pack_counts] =
if show_used do
[
ActivityLog.get_grouped_used_counts(current_user, types: types, group_by: :type_id),
types |> Ammo.get_historical_count_for_types(current_user),
Ammo.get_historical_counts(types, current_user),
Ammo.get_grouped_packs_count(current_user,
types: types,
group_by: :type_id,

View File

@ -14,7 +14,7 @@ defmodule CanneryWeb.ExportController do
total_pack_counts =
Ammo.get_grouped_packs_count(current_user, types: types, group_by: :type_id, show_used: true)
average_costs = types |> Ammo.get_average_cost_for_types(current_user)
average_costs = Ammo.get_average_costs(types, current_user)
types =
types

View File

@ -69,7 +69,7 @@ defmodule CanneryWeb.TypeLive.Show do
Ammo.get_packs_count(current_user, type_id: type.id, show_used: :only_used),
Ammo.get_packs_count(current_user, type_id: type.id, show_used: true),
ActivityLog.get_used_count(current_user, type_id: type.id),
type |> Ammo.get_historical_count_for_type(current_user)
Ammo.get_historical_count(type, current_user)
]
else
[nil, nil, nil, nil, nil]
@ -94,7 +94,7 @@ defmodule CanneryWeb.TypeLive.Show do
containers: containers,
cprs: packs |> Ammo.get_cprs(current_user),
last_used_dates: packs |> ActivityLog.get_last_used_dates(current_user),
avg_cost_per_round: type |> Ammo.get_average_cost_for_type(current_user),
avg_cost_per_round: Ammo.get_average_cost(type, current_user),
rounds: Ammo.get_round_count(current_user, type_id: type.id),
original_counts: original_counts,
used_rounds: used_rounds,