Return changed objects in populate_match_below
This commit is contained in:
parent
95bed3959f
commit
645f3d0800
|
|
@ -6,8 +6,8 @@ class PopulateMatchBelow
|
||||||
def call
|
def call
|
||||||
match = context.match
|
match = context.match
|
||||||
begin
|
begin
|
||||||
PlayoffStageService.populate_match_below(match)
|
objects_to_save = PlayoffStageService.populate_match_below(match)
|
||||||
context.object_to_save = match
|
context.object_to_save = objects_to_save
|
||||||
rescue StandardError
|
rescue StandardError
|
||||||
context.fail!
|
context.fail!
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,10 @@ class PlayoffStageService
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Populates the match below given match with the winners of the matches above
|
||||||
|
#
|
||||||
|
# @param current_match [Match] The Match which finished, the match below it gets populated
|
||||||
|
# @return [Array] the objects that changed and need to be saved
|
||||||
def self.populate_match_below(current_match)
|
def self.populate_match_below(current_match)
|
||||||
current_stage = current_match.stage
|
current_stage = current_match.stage
|
||||||
next_stage = current_stage.tournament.stages.find { |s| s.level == current_stage.level - 1 }
|
next_stage = current_stage.tournament.stages.find { |s| s.level == current_stage.level - 1 }
|
||||||
|
|
@ -95,10 +99,8 @@ class PlayoffStageService
|
||||||
# If a match is not decided yet, it will return nil as winner.
|
# If a match is not decided yet, it will return nil as winner.
|
||||||
# This is not allowed in Database. The following code filters out MatchScores that contain nil as team.
|
# This is not allowed in Database. The following code filters out MatchScores that contain nil as team.
|
||||||
match_scores = match_scores.select { |ms| ms.team.present? }
|
match_scores = match_scores.select { |ms| ms.team.present? }
|
||||||
match_scores.each(&:save)
|
|
||||||
match_below.match_scores = match_scores
|
match_below.match_scores = match_scores
|
||||||
match_below.save
|
[match_below, match_scores].flatten
|
||||||
match_below
|
|
||||||
end
|
end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue