class Cloudsight::Request
Public Class Methods
construct_params(options)
click to toggle source
# File lib/cloudsight/request.rb, line 36 def construct_params(options) params = {} [:locale, :language, :latitude, :longitude, :altitude, :device_id, :ttl, :focus_x, :focus_y].each do |attr| params[attr.to_s] = options[attr] if options.has_key?(attr) end if options[:focus] params['focus_x'] = options[:focus][:x] params['focus_y'] = options[:focus][:y] end params['remote_image_url'] = options[:url] if options.has_key?(:url) params['image'] = options[:file] if options.has_key?(:file) params end
repost(token, options = {})
click to toggle source
# File lib/cloudsight/request.rb, line 20 def repost(token, options = {}) url = "#{Cloudsight::base_url}/v1/images/#{token}/repost" response = Api.post(url, options) return true if response.code == 200 and response.body.to_s.strip.empty? data = JSON.parse(response.body) raise ResponseException.new(data['error']) if data['error'] raise UnexpectedResponseException.new(response.body) unless data['token'] data rescue JSON::ParserError raise UnexpectedResponseException.new(response.body) end
send(options = {})
click to toggle source
# File lib/cloudsight/request.rb, line 4 def send(options = {}) raise RuntimeError.new("Need to define either oauth_options or api_key") unless Cloudsight.api_key || Cloudsight.oauth_options url = "#{Cloudsight::base_url}/v1/images" params = construct_params(options) response = Api.post(url, params) data = JSON.parse(response.body) raise ResponseException.new(data['error']) if data['error'] raise UnexpectedResponseException.new(response.body) unless data['token'] data rescue JSON::ParserError raise UnexpectedResponseException.new(response.body) end