class Hover::Client::Midas

Public Instance Methods

complete_order_upload(order_id) click to toggle source
# File lib/hover/client/midas.rb, line 43
def complete_order_upload(order_id)
  patch("orders/#{order_id}/archive_uploading_complete.json")
end
create_order(params = {}) click to toggle source

def update_order(id, order_attributes)

put("orders/#{id}.json", order_parameters(order_attributes))

end

# File lib/hover/client/midas.rb, line 39
def create_order(params = {})
  json_post('orders.json', params)
end
download_image(image, parameters = {}) { |output| ... } click to toggle source
# File lib/hover/client/midas.rb, line 59
def download_image(image, parameters = {}, &block)
  return unless url = get_redirect_location("images/#{image["id"]}.jpg", parameters)

  Tempfile.open(["image-download", ".jpg"]) do |output|
    output.write(Kernel.open(url).read)
    output.rewind
  
    yield output
  end
end
image(id) click to toggle source
# File lib/hover/client/midas.rb, line 55
def image(id)
  json_get("images/#{id}.json")
end
image_upload_urls(order_id) click to toggle source
# File lib/hover/client/midas.rb, line 87
def image_upload_urls(order_id)
  json_get("images/upload_urls.json", order_id: order_id)
end
images(parameters = {}) click to toggle source

Images

# File lib/hover/client/midas.rb, line 51
def images(parameters = {})
  json_get("images.json", parameters)
end
me() click to toggle source

Users

# File lib/hover/client/midas.rb, line 15
def me
  json_get('me.json')
end
order(id, parameters = {}) click to toggle source
# File lib/hover/client/midas.rb, line 27
def order(id, parameters = {})
  json_get("orders/#{id}.json", parameters)
end
order_complete_work(order_id) click to toggle source
# File lib/hover/client/midas.rb, line 31
def order_complete_work(order_id)
  put("orders/#{order_id}/work_complete.json")
end
orders(parameters = {}) click to toggle source

Orders

# File lib/hover/client/midas.rb, line 23
def orders(parameters = {})
  json_get('orders.json', parameters)
end
upload_image(image, io) click to toggle source
# File lib/hover/client/midas.rb, line 70
def upload_image(image, io)
  raise "Already Uploaded" unless upload_url = image["image"].try(:[], "upload_url")

  file = (io.is_a?(String) ? File.open(io) : io)

  uri = URI.parse(upload_url)

  request = Net::HTTP::Put.new(uri.request_uri)
  request.body_stream = file
  request.content_length = file.size
  request['Content-Type'] = ''

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  response = http.request(request)
end
upload_images_for_order(order_id, input_path) click to toggle source
# File lib/hover/client/midas.rb, line 91
def upload_images_for_order(order_id, input_path)
  image_array = image_upload_urls(order_id).map { |upload_url| {"image" => {"upload_url" => upload_url}} }
  file_paths = Dir.glob(File.join(input_path, "*.jp*"))

  if file_paths.size > image_array.size
    raise("Trying to upload #{file_paths.size} files. #{image_array.size} is the maximum.")
  end

  file_paths.each do |file_path|
    image = image_array.pop
    upload_image(image, file_path)
  end
end
upload_images_from_prometheus_export(order_id, export_zip_path) click to toggle source
# File lib/hover/client/midas.rb, line 105
def upload_images_from_prometheus_export(order_id, export_zip_path)
  Zip::File.open(export_zip_path) do |zip|
    Dir.mktmpdir do |directory_path|
      zip.entries.select { |entry| entry.name =~ /original_image\.jp(g|eg)$/ }.each do |entry|
        basename = File.basename(entry.name)
        next if basename =~ /^\./
        entry.extract(File.join(directory_path, basename)) { true }
      end
    
      upload_images_for_order(order_id, directory_path)
    end
  end
end