Skip to content

Commit

Permalink
Improve naming some
Browse files Browse the repository at this point in the history
  • Loading branch information
joshsmith committed Nov 26, 2016
1 parent c0ef37b commit cf023c4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
18 changes: 9 additions & 9 deletions lib/code_corps/donation_goals_manager.ex
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ defmodule CodeCorps.DonationGoalsManager do

multi = Multi.new
|> Multi.insert(:donation_goal, changeset)
|> Multi.run(:update_current_goal, &transactional_update_current_goal/1)
|> Multi.run(:update_related_goals, &update_related_goals/1)

case Repo.transaction(multi) do
{:ok, %{donation_goal: donation_goal, update_current_goal: _}} ->
{:ok, %{donation_goal: donation_goal, update_related_goals: _}} ->
{:ok, donation_goal}
{:error, :donation_goal, %Ecto.Changeset{} = changeset, %{}} ->
{:error, changeset}
Expand All @@ -37,10 +37,10 @@ defmodule CodeCorps.DonationGoalsManager do

multi = Multi.new
|> Multi.update(:donation_goal, changeset)
|> Multi.run(:update_current_goal, &transactional_update_current_goal/1)
|> Multi.run(:update_related_goals, &update_related_goals/1)

case Repo.transaction(multi) do
{:ok, %{donation_goal: donation_goal, update_current_goal: _}} ->
{:ok, %{donation_goal: donation_goal, update_related_goals: _}} ->
{:ok, Repo.get(DonationGoal, donation_goal.id)}
{:error, :donation_goal, %Ecto.Changeset{} = changeset, %{}} ->
{:error, changeset}
Expand All @@ -49,22 +49,22 @@ defmodule CodeCorps.DonationGoalsManager do
end
end

def update_current_goal(%Project{} = project) do
def set_current_goal_for_project(%Project{} = project) do
project
|> find_current_goal
|> set_to_current(project)
end

defp transactional_update_current_goal(%{donation_goal: %DonationGoal{project_id: project_id}}) do
defp update_related_goals(%{donation_goal: %DonationGoal{project_id: project_id}}) do
Project
|> Repo.get(project_id)
|> update_current_goal
|> set_current_goal_for_project
end

defp find_current_goal(%Project{} = project) do
amount_donated = get_amount_donated(project)
case find_lowest_not_yet_reached(project, amount_donated) do
nil -> get_largest_goal(project)
nil -> find_largest_goal(project)
%DonationGoal{} = donation_goal -> donation_goal
end
end
Expand Down Expand Up @@ -98,7 +98,7 @@ defmodule CodeCorps.DonationGoalsManager do
|> Repo.one
end

defp get_largest_goal(%Project{id: project_id}) do
defp find_largest_goal(%Project{id: project_id}) do
DonationGoal
|> where([d], d.project_id == ^project_id)
|> order_by(desc: :amount)
Expand Down
14 changes: 7 additions & 7 deletions test/lib/code_corps/donation_goals_manager_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ defmodule CodeCorps.DonationGoalsManagerTest do



describe "update_current_goal/1" do
describe "set_current_goal_for_project/1" do
test "sets current goal correctly" do
project = insert(:project)
plan = insert(:stripe_connect_plan, project: project)
Expand All @@ -140,27 +140,27 @@ defmodule CodeCorps.DonationGoalsManagerTest do
goal_3 = insert(:donation_goal, amount: 20, project: project)

plan |> donate(5)
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_1.id)

plan |> donate(5) # total is now 10
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_2.id)

plan |> donate(5) # total is now 15
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_3.id)

plan |> donate(5) # total is now 20
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_3.id)

plan |> donate(5) # total is now 25
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_3.id)

goal_4 = insert(:donation_goal, amount: 30, project: project) # 30 is more than the current 25 total
DonationGoalsManager.update_current_goal(project)
DonationGoalsManager.set_current_goal_for_project(project)
assert_current_goal_id(goal_4.id)
end
end
Expand Down

0 comments on commit cf023c4

Please sign in to comment.