78 lines
2.4 KiB
Ruby
78 lines
2.4 KiB
Ruby
class VideoAnalyses::AudioConfirmationsController < ApplicationController
|
|
before_action :set_video, only: [:new, :create]
|
|
|
|
def new
|
|
@matched_file_name = params.delete(:matched_file_name)
|
|
@audio_confirmation = filtered_audio_confirmations.build(audio_confirmation_params)
|
|
@edl_events_data = build_presenter(@audio_confirmation.edl_type).present
|
|
@audio_confirmation.attributes = @edl_events_data[:edl_attributes]
|
|
end
|
|
|
|
def create
|
|
audio_confirmation = filtered_audio_confirmations.build(audio_confirmation_params)
|
|
audio_confirmation.save
|
|
@audio_confirmation_data = ::AudioConfirmations::AudioConfirmationPresenter.new.present(audio_confirmation)
|
|
@audio_confirmations_data = ::AudioConfirmations::AudioConfirmationsPresenter.new.present(filtered_audio_confirmations)
|
|
end
|
|
|
|
def destroy
|
|
audio_confirmation = find_audio_confirmation
|
|
video = audio_confirmation.video
|
|
audio_confirmation.destroy
|
|
@audio_confirmation_data = ::AudioConfirmations::AudioConfirmationPresenter.new.present(audio_confirmation)
|
|
@audio_confirmations_data = ::AudioConfirmations::AudioConfirmationsPresenter.new.present(video.audio_confirmations)
|
|
end
|
|
|
|
private
|
|
|
|
def build_presenter(edl_type)
|
|
files_for_request = if edl_type == "all_tracks"
|
|
FilesForRequest.new(@video)
|
|
else
|
|
AudioFilesForRequest.new(@video, @video.edl_timecode_start)
|
|
end
|
|
|
|
EdlEventsPresenter.new(
|
|
EdlEventGateway.new(
|
|
files_for_request,
|
|
@audio_confirmation.appears_at,
|
|
@audio_confirmation.appears_at,
|
|
channel_filter: ENV["DISABLE_EDL_CHANNEL_FILTER"] ? "" : "A",
|
|
)
|
|
)
|
|
end
|
|
|
|
def find_audio_confirmation
|
|
authorize policy_scope(AudioConfirmation).find(params[:id])
|
|
end
|
|
|
|
def set_video
|
|
@video = authorize policy_scope(Video).find(params[:video_id])
|
|
end
|
|
|
|
def filtered_audio_confirmations
|
|
policy_scope(@video.audio_confirmations)
|
|
end
|
|
|
|
def audio_confirmation_params
|
|
params.require(:audio_confirmation).permit(
|
|
:time_elapsed,
|
|
:channel,
|
|
:timecode_in,
|
|
:timecode_out,
|
|
:duration,
|
|
:source_file_name,
|
|
:clip_name,
|
|
:description,
|
|
:music_type,
|
|
:music_category,
|
|
:composer_info,
|
|
:publisher_info,
|
|
:catalog,
|
|
:title,
|
|
:confirmation_type,
|
|
:edl_type,
|
|
)
|
|
end
|
|
end
|