Files
old-holivud2/app/controllers/video_release_confirmations_controller.rb
2020-05-31 22:38:19 +02:00

91 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,
: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