92 lines
2.6 KiB
Ruby
92 lines
2.6 KiB
Ruby
class VideoReleaseConfirmationsController < ApplicationController
|
|
before_action :set_releasable, except: [:destroy]
|
|
before_action :set_video, except: [:destroy]
|
|
before_action :set_video_release_confirmation, only: [:destroy]
|
|
|
|
def new
|
|
@video_release_confirmation = build_video_release_confirmation(video_release_confirmation_params_with_releasable)
|
|
edl_events_presenter = build_presenter
|
|
@edl_events_data = edl_events_presenter.present
|
|
@video_release_confirmation.attributes = @edl_events_data[:edl_attributes]
|
|
end
|
|
|
|
def create
|
|
@video_release_confirmation = build_video_release_confirmation(video_release_confirmation_params_with_releasable)
|
|
@video_release_confirmation.save
|
|
|
|
set_video_release_confirmations
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_to [@video, :video_analyses] }
|
|
format.js
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@releasable = @video_release_confirmation.releasable
|
|
@video = @video_release_confirmation.video
|
|
|
|
@video_release_confirmation.destroy
|
|
|
|
set_video_release_confirmations
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_to [@video_release_confirmation.video, :video_analyses] }
|
|
format.js
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_video_release_confirmations
|
|
@video_release_confirmations = @video.video_release_confirmations.order_by_ranked_release_type.order(created_at: :desc)
|
|
end
|
|
|
|
def build_presenter
|
|
EdlEventsPresenter.new(
|
|
EdlEventGateway.new(
|
|
FilesForRequest.new(@video),
|
|
@video_release_confirmation.appears_at,
|
|
@video_release_confirmation.appears_at,
|
|
channel_filter: ENV["DISABLE_EDL_CHANNEL_FILTER"] ? "" : "V",
|
|
))
|
|
end
|
|
|
|
def build_video_release_confirmation(attrs = {})
|
|
@video.video_release_confirmations.build(attrs)
|
|
end
|
|
|
|
def set_releasable
|
|
releasable_param = ReleasableParam.new(params.to_unsafe_h)
|
|
|
|
@releasable = authorize policy_scope(releasable_param.type).find(releasable_param.id)
|
|
end
|
|
|
|
def set_video
|
|
@video = authorize policy_scope(Video).find(params[:video_id])
|
|
end
|
|
|
|
def set_video_release_confirmation
|
|
@video_release_confirmation = authorize policy_scope(VideoReleaseConfirmation).find(params[:id])
|
|
end
|
|
|
|
def video_release_confirmation_params
|
|
params.require(:video_release_confirmation).permit(
|
|
:time_elapsed,
|
|
:file_info_id,
|
|
:file_id,
|
|
:channel,
|
|
:timecode_in,
|
|
:timecode_out,
|
|
:duration,
|
|
:source_file_name,
|
|
:clip_name,
|
|
:description
|
|
)
|
|
end
|
|
|
|
def video_release_confirmation_params_with_releasable
|
|
video_release_confirmation_params.merge(releasable: @releasable)
|
|
end
|
|
end
|