Class: Mindee::V2::HTTP::MindeeApiV2

Inherits:
Object
  • Object
show all
Defined in:
lib/mindee/v2/http/mindee_api_v2.rb

Overview

API client for version 2.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil) ⇒ MindeeApiV2

Returns a new instance of MindeeApiV2.

Parameters:

  • api_key (String, nil) (defaults to: nil)


16
17
18
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 16

def initialize(api_key: nil)
  @settings = ApiV2Settings.new(api_key: api_key)
end

Instance Attribute Details

#settings ⇒ ApiV2Settings (readonly)

Returns:



13
14
15
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 13

def settings
  @settings
end

Instance Method Details

#req_get_job(job_id) ⇒ Mindee::V2::Parsing::JobResponse

Retrieves a queued job.

Parameters:

  • job_id (String) —

    ID of the job or URL to the job.

Returns:



54
55
56
57
58
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 54

def req_get_job(job_id)
  @settings.check_api_key
  response = poll("#{@settings.base_url}/v2/jobs/#{job_id}")
  Mindee::V2::Parsing::JobResponse.new(process_response(response))
end

#req_get_result(product, resource) ⇒ Mindee::V2::Parsing::BaseResponse

Retrieves a result from a given queue.

Parameters:

Returns:



39
40
41
42
43
44
45
46
47
48
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 39

def req_get_result(product, resource)
  return req_get_result_url(product.response_type, resource) if uri?(resource)

  @settings.check_api_key
  response = result_req_get(
    resource,
    product
  )
  product.response_type.new(process_response(response))
end

#req_get_search(params) ⇒ Mindee::V2::Parsing::Search::BaseSearchResponse

Retrieves a list of resources with the given criteria.

Parameters:

Returns:



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 64

def req_get_search(params)
  @settings.check_api_key
  uri = URI("#{@settings.base_url}/v2/search/#{params.slug}")

  query_params = params.request_parameters
  uri.query = URI.encode_www_form(query_params) unless query_params.empty?

  headers = {
    'Authorization' => @settings.api_key,
    'User-Agent' => @settings.user_agent,
  }
  req = Net::HTTP::Get.new(uri, headers)

  response = Net::HTTP.start(uri.hostname, uri.port,
                             use_ssl: true,
                             open_timeout: @settings.request_timeout,
                             read_timeout: @settings.request_timeout) do |http|
    http.request(req)
  end
  params.response_class.new(process_response(response))
end

#req_post_product_enqueue(input_source, params) ⇒ Mindee::V2::Parsing::JobResponse

Send a file to the asynchronous processing queue for inference processing.

Parameters:

Returns:

Raises:

  • (Mindee::Error::MindeeHttpErrorV2)


26
27
28
29
30
31
32
33
# File 'lib/mindee/v2/http/mindee_api_v2.rb', line 26

def req_post_product_enqueue(input_source, params)
  @settings.check_api_key
  response = enqueue(
    input_source,
    params
  )
  Mindee::V2::Parsing::JobResponse.new(process_response(response))
end