class VideoAnalysisService def presenter(video, video_analysis, audio_analysis) VideoAnalysisPresenter.new( video, video_analysis, MatchesPresenter.new( video, video_analysis, audio_analysis, all_edl_events(video), all_graphics_edl_events(video), ) ) end private def all_graphics_edl_events(video) if video.graphics_only_edl_file.attached? graphics_files_for_request = GraphicsFilesForRequest.new(video, edl_timecode_start(video)) EdlEventGateway.new( graphics_files_for_request, "00:00:00:00", nil, ).edl_events else [] end end def edl_timecode_start(video) if video.edl_timecode_start.blank? video.update(edl_timecode_start: start_timecode_offset(video)) end video.edl_timecode_start end def all_edl_events(video) EdlEventGateway.new( FilesForRequest.new(video), "00:00:00:00", nil, ).edl_events end def start_timecode_offset(video) EdlEventGateway.new( FilesForRequest.new(video), "00:00:00:00", "00:00:00:00", ).edl_timecode_start end end