Fix hub diretta: considera solo l'ultima sessione, non idle orfane.
Dopo «Termina trasmissione» la partita restava visibile se esisteva una vecchia sessione idle precedente a quella ended; l'hub e l'app usano ora lo stato dell'ultima sessione. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -130,9 +130,7 @@ module Api
|
||||
end
|
||||
|
||||
def active_session_for(match)
|
||||
match.stream_sessions
|
||||
.order(created_at: :desc)
|
||||
.find { |s| !%w[ended error].include?(s.status) }
|
||||
match.active_stream_session
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -94,9 +94,7 @@ module Public
|
||||
end
|
||||
|
||||
def active_session_for(match)
|
||||
match.stream_sessions
|
||||
.order(created_at: :desc)
|
||||
.find { |s| !%w[ended error].include?(s.status) }
|
||||
match.active_stream_session
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -34,8 +34,10 @@ class Match < ApplicationRecord
|
||||
end
|
||||
|
||||
def active_stream_session
|
||||
stream_sessions.sort_by { |s| s.created_at }.reverse
|
||||
.find { |s| !%w[ended error].include?(s.status) }
|
||||
latest = stream_sessions.max_by(&:created_at)
|
||||
return nil if latest.nil? || latest.status.in?(%w[ended error])
|
||||
|
||||
latest
|
||||
end
|
||||
|
||||
def deletable?
|
||||
|
||||
Reference in New Issue
Block a user