class Scene7::Asset

Attributes

attributes[R]

Public Class Methods

create(params) click to toggle source
# File lib/scene7/asset.rb, line 25
def create(params)
  source_url = params.delete(:source_url)
  dest_path  = params.delete(:dest_path)

  request = {
    :company_handle   => Client.company_handle,
    :job_name         => job_name(source_url),
    :upload_urls_job  => {
      :url_array => {
        :items => {
          :source_url            => source_url,
          :dest_path             => dest_path,
          :order!                => [:source_url, :dest_path]
        }
      },
      :overwrite          => true,
      :ready_for_publish  => true,
      :create_mask        => false,
      :email_setting      => "None",
      :order!           => [:url_array, :overwrite, :ready_for_publish, :create_mask, :email_setting]
    },
    :order!           => [:company_handle, :job_name, :upload_urls_job]
  }

  Client.perform_request(:submit_job, request)
end
current_publish_job() click to toggle source
# File lib/scene7/asset.rb, line 66
def current_publish_job
  response = Client.perform_request(:get_active_jobs, {
    :company_handle => Client.company_handle
  })

  publish_jobs = response.to_hash[:get_active_jobs_return][:job_array][:items].detect{ |item| item[:image_serving_publish_job] } rescue []
  publish_jobs[:job_handle] rescue nil
end
find_all_by_name(name) click to toggle source
# File lib/scene7/asset.rb, line 11
def find_all_by_name(name)
  response = Client.perform_request(:get_assets_by_name,
      :company_handle => Client.company_handle,
      :name_array     => {:items => name},
      :order!         => [:company_handle, :name_array]
  )

  attributes = response.to_hash[:get_assets_by_name_return][:asset_array][:items] rescue []

  collection = attributes.is_a?(Array) ? attributes : [attributes]

  collection.map! { |asset| new(asset) }
end
find_by_name(name) click to toggle source
# File lib/scene7/asset.rb, line 7
def find_by_name(name)
  find_all_by_name(name).first
end
job_name(name) click to toggle source
# File lib/scene7/asset.rb, line 52
def job_name(name)
  Digest::SHA1.hexdigest("#{name}#{Time.now.usec}")[0..20]
end
new(attributes) click to toggle source
# File lib/scene7/asset.rb, line 91
def initialize(attributes)
  @attributes = attributes
end
publish() click to toggle source
# File lib/scene7/asset.rb, line 75
def publish
  Client.perform_request(:submit_job, {
    :company_handle        => Client.company_handle,
    :job_name              => job_name("publish-"),
    :image_serving_publish_job  => {
      :publish_type          => "Full",
      :email_setting         => "None",
      :order!                => [:publish_type, :email_setting]
    },
    :order!           => [:company_handle, :job_name, :image_serving_publish_job]
  })
end
stop_publish_job() click to toggle source
# File lib/scene7/asset.rb, line 56
def stop_publish_job
  if job_handle = current_publish_job
    Client.perform_request(:stop_job, {
      :company_handle => Client.company_handle,
      :job_handle     => job_handle,
      :order!         => [:company_handle, :job_handle]
    })
  end
end

Public Instance Methods

destroy() click to toggle source
# File lib/scene7/asset.rb, line 119
def destroy
  response = Client.perform_request(:delete_asset, :company_handle => Client.company_handle, :asset_handle => handle, :order! => [:company_handle, :asset_handle])
  response.http.code == 200
end
handle() click to toggle source
# File lib/scene7/asset.rb, line 115
def handle
  attributes[:asset_handle]
end
name() click to toggle source
# File lib/scene7/asset.rb, line 95
def name
  attributes[:name]
end
rename(new_name) click to toggle source
# File lib/scene7/asset.rb, line 99
def rename(new_name)
  response = Client.perform_request(:rename_asset, {
    :company_handle => Client.company_handle,
    :asset_handle => handle,
    :new_name => new_name,
    :validate_name => true,
    :rename_files => true,
    :order! => [:company_handle, :asset_handle, :new_name, :validate_name, :rename_files]
  })

  @attributes[:name] = new_name
  return true
rescue Savon::SOAP::Fault
  raise "Could not rename the file -- name already taken."
end