class Clarification::Requester

Public Class Methods

new(model_array=[]) click to toggle source
# File lib/clarification/requester.rb, line 4
def initialize(model_array=[])
  @model_array = model_array
end

Public Instance Methods

get(target_url) click to toggle source
# File lib/clarification/requester.rb, line 8
def get(target_url)
  response = {}
  @model_array.each do |model|
    response[model] = get_with_model(target_url, model)
  end
  return response
end

Private Instance Methods

body_builder(url) click to toggle source
# File lib/clarification/requester.rb, line 31
def body_builder(url)
  {
    "inputs": [
      {
        "data": {
          "image": {
            "url": "#{url}"
          }
        }
      }
    ]
  }
end
get_response(uri, body) click to toggle source
# File lib/clarification/requester.rb, line 67
def get_response(uri, body)
  request = request_builder(uri, body)
  options = options_builder(uri)

  response = Net::HTTP.start(uri.hostname, uri.port, options) do |http|
    http.request(request)
  end

  return response

end
get_with_model(target_url, model) click to toggle source
# File lib/clarification/requester.rb, line 18
def get_with_model(target_url, model)
  uri = uri_builder(model)
  body = body_builder(target_url)
  request = request_builder(uri, body)
  options = options_builder(uri)

  response = Net::HTTP.start(uri.hostname, uri.port, options) do |http|
    http.request(request)
  end

  return response
end
options_builder(uri) click to toggle source
# File lib/clarification/requester.rb, line 60
def options_builder(uri)
  request_options = {
    use_ssl: uri.scheme == "https",
  }
  return request_options
end
request_builder(uri, body) click to toggle source
# File lib/clarification/requester.rb, line 51
def request_builder(uri, body)
  request = Net::HTTP::Post.new(uri)
  request.content_type = "application/json"
  request["Authorization"] = "Key #{Clarification.configuration.api_key}"
  request.body = JSON.dump(body)

  return request
end
uri_builder(model) click to toggle source
# File lib/clarification/requester.rb, line 45
def uri_builder(model)
  model_key = Clarification::PUBLIC_MODELS[model]
  url = "#{Clarification::BASE_URL}models/#{model_key}/outputs"
  uri = URI.parse(url)
end