module AdLeads::Client::Image
Public Instance Methods
create_image(creative_group_id, ad_id, options)
click to toggle source
# File lib/ad_leads/image.rb, line 4 def create_image(creative_group_id, ad_id, options) post image_root_path(creative_group_id, ad_id), options end
upload_image(creative_group_id, ad_id, image_id, file)
click to toggle source
# File lib/ad_leads/image.rb, line 8 def upload_image(creative_group_id, ad_id, image_id, file) remaining_tries ||= 3 post image_upload_path(creative_group_id, ad_id, image_id), image_upload_opts(creative_group_id, ad_id, image_id, file) rescue AdLeads::EtagMismatchError remaining_tries -= 1 retry unless remaining_tries.zero? end
Private Instance Methods
image_etag(creative_group_id, ad_id, image_id)
click to toggle source
# File lib/ad_leads/image.rb, line 33 def image_etag(creative_group_id, ad_id, image_id) get "/creativegroups/#{creative_group_id}/creatives/#{ad_id}/images/#{image_id}" end
image_root_path(creative_group_id, ad_id)
click to toggle source
# File lib/ad_leads/image.rb, line 18 def image_root_path(creative_group_id, ad_id) "/creativegroups/#{creative_group_id}/creatives/#{ad_id}/images" end
image_upload_opts(creative_group_id, ad_id, image_id, file)
click to toggle source
# File lib/ad_leads/image.rb, line 26 def image_upload_opts(creative_group_id, ad_id, image_id, file) { file: Faraday::UploadIO.new(file, 'image/jpeg'), etag: image_etag(creative_group_id, ad_id, image_id).headers['Etag'] } end
image_upload_path(creative_group_id, ad_id, image_id)
click to toggle source
# File lib/ad_leads/image.rb, line 22 def image_upload_path(creative_group_id, ad_id, image_id) "/creativegroups/#{creative_group_id}/creatives/#{ad_id}/images/#{image_id}/file" end