Class: Eivid::UploadVimeoJob

Inherits:
ApplicationJob show all
Defined in:
app/jobs/eivid/upload_vimeo_job.rb

Instance Method Summary collapse

Instance Method Details

#perform(video_record:, video_path:) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'app/jobs/eivid/upload_vimeo_job.rb', line 4

def perform(video_record:, video_path:)
  # Upload video
  uploaded_data       = Eivid::RequestService.upload_video(video_path:)
  vimeo_id, vimeo_url = uploaded_data.values_at(:vimeo_id, :vimeo_url)

  # Update records
  video_record.update(url_embedded: vimeo_url, vimeo_id:)
  Eivid::RequestService.add_video_to_folder(video_record:)

  # Communicate status to the front-end
  data = { video: video_record.slice(:id, :user_id), progress: { percentage: 33, step: "The video has been uploaded to Vimeo." } }
  NotifyFrontService.progress('notify_method_on_upload', data)
  CheckVimeoStatusJob.perform_later(video_record:)
end