Initial commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
class VideoAnalyses::UnreleasedAppearancesController < ApplicationController
|
||||
before_action :set_video, except: [:edit, :update, :destroy]
|
||||
|
||||
def new
|
||||
@unreleased_appearance = @video.unreleased_appearances.build(unreleased_appearance_params)
|
||||
@edl_events_data = build_presenter.present
|
||||
@unreleased_appearance.attributes = @edl_events_data[:edl_attributes]
|
||||
end
|
||||
|
||||
def create
|
||||
@unreleased_appearance = @video.unreleased_appearances.build(unreleased_appearance_params)
|
||||
@unreleased_appearance.save
|
||||
@unreleased_appearances_data = UnreleasedAppearancesPresenter.new.present(@video.unreleased_appearances)
|
||||
end
|
||||
|
||||
def edit
|
||||
@unreleased_appearance = find_unreleased_appearance
|
||||
@video = @unreleased_appearance.video
|
||||
@edl_events_data = build_presenter.present
|
||||
end
|
||||
|
||||
def update
|
||||
unreleased_appearance = find_unreleased_appearance
|
||||
unreleased_appearance.update(unreleased_appearance_params)
|
||||
@unreleased_appearances_data = UnreleasedAppearancesPresenter.new.present(unreleased_appearance.video.unreleased_appearances)
|
||||
end
|
||||
|
||||
def destroy
|
||||
unreleased_appearance = find_unreleased_appearance
|
||||
video = unreleased_appearance.video
|
||||
unreleased_appearance.destroy
|
||||
@unreleased_appearances_data = UnreleasedAppearancesPresenter.new.present(video.unreleased_appearances)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def build_presenter
|
||||
EdlEventsPresenter.new(EdlEventGateway.new(FilesForRequest.new(@video), @unreleased_appearance.appears_at, @unreleased_appearance.appears_at))
|
||||
end
|
||||
|
||||
def unreleased_appearance_params
|
||||
params
|
||||
.require(:unreleased_appearance)
|
||||
.permit(
|
||||
:notes,
|
||||
:time_elapsed,
|
||||
:channel,
|
||||
:timecode_in,
|
||||
:timecode_out,
|
||||
:duration,
|
||||
:source_file_name,
|
||||
:clip_name,
|
||||
:description,
|
||||
:note_category
|
||||
)
|
||||
end
|
||||
|
||||
def unreleased_appearances
|
||||
if @video
|
||||
policy_scope(@video.unreleased_appearances)
|
||||
else
|
||||
policy_scope(UnreleasedAppearance)
|
||||
end
|
||||
end
|
||||
|
||||
def videos
|
||||
policy_scope(Video)
|
||||
end
|
||||
|
||||
def find_unreleased_appearance
|
||||
authorize unreleased_appearances.find(params[:id])
|
||||
end
|
||||
|
||||
def set_video
|
||||
@video = authorize videos.find(params[:video_id])
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user