Initial commit
This commit is contained in:
75
app/models/edl_event_gateway.rb
Normal file
75
app/models/edl_event_gateway.rb
Normal file
@@ -0,0 +1,75 @@
|
||||
class EdlEventGateway
|
||||
def initialize(files_for_request, timecode_start, timecode_end, collection: {}, channel_filter: "")
|
||||
@files_for_request = files_for_request
|
||||
@timecode_start = timecode_start
|
||||
@timecode_end = timecode_end
|
||||
@collection = collection
|
||||
@channel_filter = channel_filter
|
||||
end
|
||||
|
||||
def edl_events
|
||||
@edl_events ||= response_results.
|
||||
filter { |response_edl_event| response_edl_event.channel.include?(channel_filter) }.
|
||||
map do |response_edl_event|
|
||||
EdlEvent.new(
|
||||
channel: response_edl_event.channel,
|
||||
start_time: response_edl_event.start_time,
|
||||
timecode_in: response_edl_event.timecode_in,
|
||||
timecode_out: response_edl_event.timecode_out,
|
||||
duration: response_edl_event.duration,
|
||||
source_file_name: response_edl_event.source_file_name,
|
||||
clip_name: response_edl_event.clip_name,
|
||||
description: response_edl_event.description,
|
||||
matches: response_edl_event.matches,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def edl_timecode_start
|
||||
return if response.nil?
|
||||
|
||||
response.edl_timecode_start
|
||||
end
|
||||
|
||||
def fps
|
||||
return if response.nil?
|
||||
|
||||
response.fps
|
||||
end
|
||||
|
||||
def edl_offset_seconds
|
||||
return if response.nil?
|
||||
|
||||
response.edl_offset_seconds
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :files_for_request, :timecode_start, :timecode_end, :collection, :channel_filter
|
||||
|
||||
def as_json(*)
|
||||
{
|
||||
job_id: files_for_request.job_id,
|
||||
video_bucket_name: files_for_request.aws_bucket_name,
|
||||
video_object_name: files_for_request.file_object_name,
|
||||
edl_bucket_name: files_for_request.aws_bucket_name,
|
||||
edl_object_name: files_for_request.edl_file_object_name,
|
||||
timecode_start: timecode_start,
|
||||
timecode_end: timecode_end,
|
||||
collection: collection,
|
||||
edl_timecode_start: files_for_request.start_timecode_offset,
|
||||
}.compact
|
||||
end
|
||||
|
||||
def response_results
|
||||
return [] if response.nil?
|
||||
|
||||
response.results
|
||||
end
|
||||
|
||||
def response
|
||||
@response ||= BrayniacAI::EdlParse.create as_json
|
||||
rescue ActiveResource::ServerError => e
|
||||
nil
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user