Sha256: e472c4d813b3dac846d3c85443493e8f6e5db7e08e44242f4153d561d7ab5074

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 KB

Contents

require 'rubygems'
require 'uri'
require 'net/http'
require 'net/https'
require 'time'

module Kooaba

  class QueryRequest

    def initialize(query)
      @message = MultipartMessage.new
      content_type = `file --mime-type -b #{query.image_path}`.chop
      @message.add_file_part('image', query.image_path, content_type)
      @message.add_text_part('max_results', query.max_results) if query.max_results
      @message.add_text_part('user_data', query.user_data) if query.user_data
    end

    #
    # Returns the http response from the Kooaba servers.
    #
    def start
      url = URI.parse(Kooaba::QUERY_URL + "query")

      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_NONE

      req = Net::HTTP::Post.new(url.path)

      req.body = @message.body
      req['date'] = Time.new.httpdate
      req['content-type'] = @message.content_type
      req['authorization'] = "Token #{Kooaba.query_key}"

      http.start { |h| h.request(req) }
    end

  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
kooaba-0.0.7 lib/kooaba/query_request.rb
kooaba-0.0.6 lib/kooaba/query_request.rb
kooaba-0.0.5 lib/kooaba/query_request.rb
kooaba-0.0.4 lib/kooaba/query_request.rb
kooaba-0.0.3 lib/kooaba/query_request.rb
kooaba-0.0.2 lib/kooaba/query_request.rb
kooaba-0.0.1 lib/kooaba/query_request.rb