class TuringAPI::VisualAPI

Attributes

api_key[RW]
api_version[RW]
base_url[RW]
headers[RW]
mode[RW]

Public Class Methods

new(api_key, mode="live", api_version="v1") click to toggle source
# File lib/turing_api.rb, line 103
def initialize(api_key, mode="live", api_version="v1")
  if api_key.nil? || api_key.empty?
    raise VisualAPIException.new('API key is not provided.')
  else
    self.api_key = api_key
  end

  if api_version != 'v1'
    raise VisualAPIException.new("Currenly only 'v1' is supported for api version")
  else
    self.api_version = api_version
  end
  
  if mode != 'live' && mode != 'sandbox'
    raise VisualAPIException.new("Mode can only be either 'live' or 'sandbox'. You provided: #{mode}")
  else
    self.mode = mode
  end

  self.base_url = "https://api.turingiq.com/#{api_version}/"
  self.headers = { 'Authorization' => "Bearer #{api_key}" }
end

Public Instance Methods

auto_crop(url) click to toggle source
# File lib/turing_api.rb, line 41
def auto_crop(url)
  begin
    requested_url = @base_url+"autocrop"
    request = HTTParty.get(requested_url, headers: @headers, :body => {:url=>"#{url}"})
    response_data = request.body
    data = JSON.parse(response_data)
    data  
  rescue JSON::ParserError => e 
    puts "Error message - #{e.message}"
  end
end
create(url, id, filters=[], metadata=[]) click to toggle source
# File lib/turing_api.rb, line 53
def create(url, id, filters=[], metadata=[])
  begin
    request = @mode=="live" ? "similar" : "demo-similar"
    requested_url = @base_url+"#{request}/create"
    filter1 = !filters.empty? ? filters[0]['filter1'] : " "
    filter2 = !filters.empty? ? filters[0]['filter2'] : " "
    filter3 = !filters.empty? ? filters[0]['filter3'] : " "
    title = !metadata.empty? ? metadata[0]['title'] : " "
    request = HTTParty.post(requested_url, headers: @headers, :body => {:url=>"#{url}", :id=>id, :filter1=>"#{filter1}", :filter2=>"#{filter2}", :filter3=>"#{filter3}", :title=>"#{title}" })
    response_data = request.body
    data = JSON.parse(response_data)
    data
  rescue JSON::ParserError => e 
    puts "Error message - #{e.message}"
  end
end
delete(id) click to toggle source
# File lib/turing_api.rb, line 88
def delete(id)
  begin
    request = @mode=="live" ? "similar" : "demo-similar"
    requested_url = @base_url+"#{request}/#{id}"
    response = HTTParty.delete(requested_url, headers: @headers)
    response_data = response.body
    data = JSON.parse(response_data)
    data
  rescue JSON::ParserError => e 
    puts "Error message - #{e.message}"
  end
end
similar(id, filters=[]) click to toggle source
# File lib/turing_api.rb, line 10
def similar(id, filters=[])
  begin
    request = @mode=="live" ? "similar" : "demo-similar"
    requested_url = @base_url+"#{request}/#{id}"
    body = !filters.empty? ? {:filter1=>"#{filters[0]['filter1']}", :filter2=>"#{filters[0]['filter2']}", :filter3=>"#{filters[0]['filter3']}" } : {}
    response = HTTParty.get(requested_url, headers: @headers, :body => body)
    response_data = response.body
    data = JSON.parse(response_data)
    data
  rescue JSON::ParserError => e 
    puts "Error message - #{e.message}"
  end
end
update(url, id, filters=[], metadata=[]) click to toggle source
# File lib/turing_api.rb, line 70
def update(url, id, filters=[], metadata=[])
  begin
    request = @mode=="live" ? "similar" : "demo-similar"
    requested_url = @base_url+"#{request}/create"
    url = url if !url.nil?
    filter1 = !filters.empty? ? filters[0]['filter1'] : " "
    filter2 = !filters.empty? ? filters[0]['filter2'] : " "
    filter3 = !filters.empty? ? filters[0]['filter3'] : " "
    title = !metadata.empty? ? metadata[0]['title'] : " "
    request = HTTParty.post(requested_url, headers: @headers, :body => {:url=>"#{url}", :id=>id, :filter1=>"#{filter1}", :filter2=>"#{filter2}", :filter3=>"#{filter3}", :title=>"#{title}" })
    response_data = request.body
    data = JSON.parse(response_data)
    data
  rescue JSON::ParserError => e 
    puts "Error message - #{e.message}"
  end
end