diff --git a/lib/cannery/ammo.ex b/lib/cannery/ammo.ex index bafde6c..3927ac4 100644 --- a/lib/cannery/ammo.ex +++ b/lib/cannery/ammo.ex @@ -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) diff --git a/lib/cannery_web/components/type_table_component.ex b/lib/cannery_web/components/type_table_component.ex index 0f786ff..af741e9 100644 --- a/lib/cannery_web/components/type_table_component.ex +++ b/lib/cannery_web/components/type_table_component.ex @@ -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, diff --git a/lib/cannery_web/controllers/export_controller.ex b/lib/cannery_web/controllers/export_controller.ex index 3740744..2ed3bd0 100644 --- a/lib/cannery_web/controllers/export_controller.ex +++ b/lib/cannery_web/controllers/export_controller.ex @@ -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 diff --git a/lib/cannery_web/live/type_live/show.ex b/lib/cannery_web/live/type_live/show.ex index 18cabd1..b29388f 100644 --- a/lib/cannery_web/live/type_live/show.ex +++ b/lib/cannery_web/live/type_live/show.ex @@ -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, diff --git a/test/cannery/ammo_test.exs b/test/cannery/ammo_test.exs index 90ddb84..ca13429 100644 --- a/test/cannery/ammo_test.exs +++ b/test/cannery/ammo_test.exs @@ -222,7 +222,7 @@ defmodule Cannery.AmmoTest do ] end - test "get_average_cost_for_type/2 gets average cost for type", + test "get_average_cost/2 gets average cost for type", %{type: type, current_user: current_user, container: container} do {1, [_pack]} = pack_fixture( @@ -232,7 +232,7 @@ defmodule Cannery.AmmoTest do current_user ) - assert 25.0 = Ammo.get_average_cost_for_type(type, current_user) + assert 25.0 = Ammo.get_average_cost(type, current_user) {1, [_pack]} = pack_fixture( @@ -242,7 +242,7 @@ defmodule Cannery.AmmoTest do current_user ) - assert 25.0 = Ammo.get_average_cost_for_type(type, current_user) + assert 25.0 = Ammo.get_average_cost(type, current_user) {1, [_pack]} = pack_fixture( @@ -252,7 +252,7 @@ defmodule Cannery.AmmoTest do current_user ) - assert 40.0 = Ammo.get_average_cost_for_type(type, current_user) + assert 40.0 = Ammo.get_average_cost(type, current_user) {1, [_pack]} = pack_fixture( @@ -262,21 +262,21 @@ defmodule Cannery.AmmoTest do current_user ) - assert 37.5 = Ammo.get_average_cost_for_type(type, current_user) + assert 37.5 = Ammo.get_average_cost(type, current_user) end - test "get_average_cost_for_types/2 gets average costs for types", %{ + test "get_average_costs/2 gets average costs for types", %{ type: %{id: type_id} = type, current_user: current_user, container: container } do - assert %{} == [type] |> Ammo.get_average_cost_for_types(current_user) + assert %{} == [type] |> Ammo.get_average_costs(current_user) %{id: another_type_id} = another_type = type_fixture(current_user) assert %{} == [type, another_type] - |> Ammo.get_average_cost_for_types(current_user) + |> Ammo.get_average_costs(current_user) {1, [_pack]} = pack_fixture( @@ -288,7 +288,7 @@ defmodule Cannery.AmmoTest do assert %{another_type_id => 25.0} == [type, another_type] - |> Ammo.get_average_cost_for_types(current_user) + |> Ammo.get_average_costs(current_user) {1, [_pack]} = pack_fixture( @@ -298,7 +298,7 @@ defmodule Cannery.AmmoTest do current_user ) - average_costs = [type, another_type] |> Ammo.get_average_cost_for_types(current_user) + average_costs = [type, another_type] |> Ammo.get_average_costs(current_user) assert %{^type_id => 25.0} = average_costs assert %{^another_type_id => 25.0} = average_costs @@ -311,7 +311,7 @@ defmodule Cannery.AmmoTest do current_user ) - average_costs = [type, another_type] |> Ammo.get_average_cost_for_types(current_user) + average_costs = [type, another_type] |> Ammo.get_average_costs(current_user) assert %{^type_id => 25.0} = average_costs assert %{^another_type_id => 25.0} = average_costs @@ -324,7 +324,7 @@ defmodule Cannery.AmmoTest do current_user ) - average_costs = [type, another_type] |> Ammo.get_average_cost_for_types(current_user) + average_costs = [type, another_type] |> Ammo.get_average_costs(current_user) assert %{^type_id => 40.0} = average_costs assert %{^another_type_id => 25.0} = average_costs @@ -337,7 +337,7 @@ defmodule Cannery.AmmoTest do current_user ) - average_costs = [type, another_type] |> Ammo.get_average_cost_for_types(current_user) + average_costs = [type, another_type] |> Ammo.get_average_costs(current_user) assert %{^type_id => 37.5} = average_costs assert %{^another_type_id => 25.0} = average_costs @@ -408,68 +408,64 @@ defmodule Cannery.AmmoTest do assert %{^another_type_id => 1} = round_counts end - test "get_historical_count_for_type/2 gets accurate total round count for type", + test "get_historical_count/2 gets accurate total round count for type", %{type: type, current_user: current_user, container: container} do - assert 0 = Ammo.get_historical_count_for_type(type, current_user) + assert 0 = Ammo.get_historical_count(type, current_user) {1, [first_pack]} = pack_fixture(%{count: 1}, type, container, current_user) - assert 1 = Ammo.get_historical_count_for_type(type, current_user) + assert 1 = Ammo.get_historical_count(type, current_user) {1, [pack]} = pack_fixture(%{count: 50}, type, container, current_user) - assert 51 = Ammo.get_historical_count_for_type(type, current_user) + assert 51 = Ammo.get_historical_count(type, current_user) shot_record_fixture(%{count: 26}, current_user, pack) - assert 51 = Ammo.get_historical_count_for_type(type, current_user) + assert 51 = Ammo.get_historical_count(type, current_user) shot_record_fixture(%{count: 1}, current_user, first_pack) - assert 51 = Ammo.get_historical_count_for_type(type, current_user) + assert 51 = Ammo.get_historical_count(type, current_user) end - test "get_historical_count_for_types/2 gets accurate total round counts for types", + test "get_historical_counts/2 gets accurate total round counts for types", %{ type: %{id: type_id} = type, current_user: current_user, container: container } do - assert %{} == [type] |> Ammo.get_historical_count_for_types(current_user) + assert %{} == [type] |> Ammo.get_historical_counts(current_user) {1, [first_pack]} = pack_fixture(%{count: 1}, type, container, current_user) assert %{type_id => 1} == - [type] |> Ammo.get_historical_count_for_types(current_user) + [type] |> Ammo.get_historical_counts(current_user) %{id: another_type_id} = another_type = type_fixture(current_user) {1, [_pack]} = pack_fixture(%{count: 1}, another_type, container, current_user) - historical_counts = - [type, another_type] |> Ammo.get_historical_count_for_types(current_user) + historical_counts = [type, another_type] |> Ammo.get_historical_counts(current_user) assert %{^type_id => 1} = historical_counts assert %{^another_type_id => 1} = historical_counts {1, [pack]} = pack_fixture(%{count: 50}, type, container, current_user) - historical_counts = - [type, another_type] |> Ammo.get_historical_count_for_types(current_user) + historical_counts = [type, another_type] |> Ammo.get_historical_counts(current_user) assert %{^type_id => 51} = historical_counts assert %{^another_type_id => 1} = historical_counts shot_record_fixture(%{count: 26}, current_user, pack) - historical_counts = - [type, another_type] |> Ammo.get_historical_count_for_types(current_user) + historical_counts = [type, another_type] |> Ammo.get_historical_counts(current_user) assert %{^type_id => 51} = historical_counts assert %{^another_type_id => 1} = historical_counts shot_record_fixture(%{count: 1}, current_user, first_pack) - historical_counts = - [type, another_type] |> Ammo.get_historical_count_for_types(current_user) + historical_counts = [type, another_type] |> Ammo.get_historical_counts(current_user) assert %{^type_id => 51} = historical_counts assert %{^another_type_id => 1} = historical_counts diff --git a/test/cannery_web/controllers/export_controller_test.exs b/test/cannery_web/controllers/export_controller_test.exs index d182eae..dd6df4e 100644 --- a/test/cannery_web/controllers/export_controller_test.exs +++ b/test/cannery_web/controllers/export_controller_test.exs @@ -90,7 +90,7 @@ defmodule CanneryWeb.ExportControllerTest do "load_grains" => type.load_grains, "shot_charge_weight" => type.shot_charge_weight, "dram_equivalent" => type.dram_equivalent, - "average_cost" => type |> Ammo.get_average_cost_for_type(current_user), + "average_cost" => Ammo.get_average_cost(type, current_user), "round_count" => Ammo.get_round_count(current_user, type_id: type.id), "used_count" => ActivityLog.get_used_count(current_user, type_id: type.id), "pack_count" => Ammo.get_packs_count(current_user, type_id: type.id),