Class: SonyCiBasic::Downloader

Inherits:
SonyCiClient show all
Defined in:
lib/sony_ci_api/sony_ci_basic.rb

Overview

:nodoc:

Constant Summary collapse

@@cache =
{}

Instance Method Summary collapse

Methods inherited from SonyCiClient

#add_headers, #handle_errors

Constructor Details

#initialize(ci) ⇒ Downloader

Returns a new instance of Downloader.



56
57
58
# File 'lib/sony_ci_api/sony_ci_basic.rb', line 56

def initialize(ci)
  @ci = ci
end

Instance Method Details

#download(asset_id) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/sony_ci_api/sony_ci_basic.rb', line 60

def download(asset_id)
  hit = @@cache[asset_id]
  if !hit || hit[:expires] < Time.now

    curl = Curl::Easy.http_get('https'"://api.cimediacloud.com/assets/#{asset_id}/download") do |c|
      add_headers(c)
    end
    handle_errors(curl)
    url = JSON.parse(curl.body_str)['location']
    @@cache[asset_id] = { url: url, expires: Time.now + 3 * 60 * 60 }
  end
  @@cache[asset_id][:url]
end