diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index 6a4a3e5..6f80705 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -38,14 +38,14 @@ class TournamentsController < ApplicationController if group_stage groups = organize_teams_in_groups(teams) # add groups to tournament - result = AddGroupStageToTournamentAndSaveTournamentToDatabase.call(tournament: tournament, groups: groups) + result = AddGroupStageToTournamentAndSave.call(tournament: tournament, groups: groups) else # convert teams parameter into Team objects teams = teams.map(&method(:find_or_create_team)) # associate provided teams with tournament tournament.teams = teams # add playoff stage to tournament - result = AddPlayoffsToTournamentAndSaveTournamentToDatabase.call(tournament: tournament) + result = AddPlayoffsToTournamentAndSave.call(tournament: tournament) end # validate tournament unless tournament.valid? diff --git a/app/interactors/add_group_stage_to_tournament.rb b/app/interactors/add_group_stage_to_tournament.rb index 14b798c..d1d28e2 100644 --- a/app/interactors/add_group_stage_to_tournament.rb +++ b/app/interactors/add_group_stage_to_tournament.rb @@ -10,7 +10,7 @@ class AddGroupStageToTournament begin group_stage = GroupStageService.generate_group_stage(groups) tournament.stages = [group_stage] - context.tournament = tournament + context.object_to_save = tournament rescue StandardError context.fail! end diff --git a/app/interactors/add_playoffs_to_tournament.rb b/app/interactors/add_playoffs_to_tournament.rb index fbe7f25..9efc2ec 100644 --- a/app/interactors/add_playoffs_to_tournament.rb +++ b/app/interactors/add_playoffs_to_tournament.rb @@ -12,7 +12,7 @@ class AddPlayoffsToTournament else tournament.stages.concat playoff_stages end - context.tournament = tournament + context.object_to_save = tournament else context.fail! end diff --git a/app/interactors/save_tournament_to_database.rb b/app/interactors/save_application_record_object.rb similarity index 63% rename from app/interactors/save_tournament_to_database.rb rename to app/interactors/save_application_record_object.rb index 40acf12..0bc2073 100644 --- a/app/interactors/save_tournament_to_database.rb +++ b/app/interactors/save_application_record_object.rb @@ -1,10 +1,10 @@ # frozen_string_literal: true -class SaveTournamentToDatabase +class SaveApplicationRecordObject include Interactor def call - if context.tournament.save + if context.object_to_save.save nil else context.fail! diff --git a/app/organizers/add_group_stage_to_tournament_and_save.rb b/app/organizers/add_group_stage_to_tournament_and_save.rb new file mode 100644 index 0000000..b1f1012 --- /dev/null +++ b/app/organizers/add_group_stage_to_tournament_and_save.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddGroupStageToTournamentAndSave + include Interactor::Organizer + + organize AddGroupStageToTournament, SaveApplicationRecordObject +end diff --git a/app/organizers/add_group_stage_to_tournament_and_save_tournament_to_database.rb b/app/organizers/add_group_stage_to_tournament_and_save_tournament_to_database.rb deleted file mode 100644 index 83710b5..0000000 --- a/app/organizers/add_group_stage_to_tournament_and_save_tournament_to_database.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -class AddGroupStageToTournamentAndSaveTournamentToDatabase - include Interactor::Organizer - - organize AddGroupStageToTournament, SaveTournamentToDatabase -end diff --git a/app/organizers/add_playoffs_to_tournament_and_save.rb b/app/organizers/add_playoffs_to_tournament_and_save.rb new file mode 100644 index 0000000..766add6 --- /dev/null +++ b/app/organizers/add_playoffs_to_tournament_and_save.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class AddPlayoffsToTournamentAndSave + include Interactor::Organizer + + organize AddPlayoffsToTournament, SaveApplicationRecordObject +end diff --git a/app/organizers/add_playoffs_to_tournament_and_save_tournament_to_database.rb b/app/organizers/add_playoffs_to_tournament_and_save_tournament_to_database.rb deleted file mode 100644 index d4466a0..0000000 --- a/app/organizers/add_playoffs_to_tournament_and_save_tournament_to_database.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -class AddPlayoffsToTournamentAndSaveTournamentToDatabase - include Interactor::Organizer - - organize AddPlayoffsToTournament, SaveTournamentToDatabase -end diff --git a/spec/interactors/save_tournament_to_database_interactor_spec.rb b/spec/interactors/save_tournament_to_database_interactor_spec.rb index b10bba5..ce2edb3 100644 --- a/spec/interactors/save_tournament_to_database_interactor_spec.rb +++ b/spec/interactors/save_tournament_to_database_interactor_spec.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true -RSpec.describe SaveTournamentToDatabase do +RSpec.describe SaveApplicationRecordObject do before do @tournament = create(:tournament) end context 'save succeeds' do let(:context) do - SaveTournamentToDatabase.call(tournament: @tournament) + SaveApplicationRecordObject.call(object_to_save: @tournament) end before do expect_any_instance_of(Tournament) @@ -19,13 +19,13 @@ RSpec.describe SaveTournamentToDatabase do end it 'provides the tournament' do - expect(context.tournament).to eq(@tournament) + expect(context.object_to_save).to eq(@tournament) end end context 'save fails' do let(:context) do - SaveTournamentToDatabase.call(tournament: @tournament) + SaveApplicationRecordObject.call(object_to_save: @tournament) end before do expect_any_instance_of(Tournament)