Class: Crawlbase::API

Inherits:
Object
  • Object
show all
Defined in:
lib/crawlbase/api.rb

Direct Known Subclasses

ScraperAPI, ScreenshotsAPI

Constant Summary collapse

INVALID_TOKEN =
'Token is required'
INVALID_URL =
'URL is required'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ API

Returns a new instance of API.

Raises:



14
15
16
17
18
# File 'lib/crawlbase/api.rb', line 14

def initialize(options = {})
  raise INVALID_TOKEN if options[:token].nil?

  @token = options[:token]
end

Instance Attribute Details

#bodyObject (readonly)

Returns the value of attribute body.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def body
  @body
end

#original_statusObject (readonly)

Returns the value of attribute original_status.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def original_status
  @original_status
end

#pc_statusObject (readonly)

Returns the value of attribute pc_status.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def pc_status
  @pc_status
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def status_code
  @status_code
end

#storage_urlObject (readonly)

Returns the value of attribute storage_url.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def storage_url
  @storage_url
end

#tokenObject (readonly)

Returns the value of attribute token.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def token
  @token
end

#urlObject (readonly)

Returns the value of attribute url.



9
10
11
# File 'lib/crawlbase/api.rb', line 9

def url
  @url
end

Instance Method Details

#get(url, options = {}) ⇒ Object

Raises:



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/crawlbase/api.rb', line 20

def get(url, options = {})
  raise INVALID_URL if url.empty?

  uri = prepare_uri(url, options)

  response = Net::HTTP.get_response(uri)

  prepare_response(response, options[:format])

  self
end

#post(url, data, options = {}) ⇒ Object

Raises:



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/crawlbase/api.rb', line 32

def post(url, data, options = {})
  raise INVALID_URL if url.empty?

  uri = prepare_uri(url, options)

  http = Net::HTTP.new(uri.host, uri.port)

  http.use_ssl = true

  content_type = options[:post_content_type].to_s.include?('json') ? { 'Content-Type': 'text/json' } : nil

  request = Net::HTTP::Post.new(uri.request_uri, content_type)

  if options[:post_content_type].to_s.include?('json')
    request.body = data.to_json
  else
    request.set_form_data(data)
  end

  response = http.request(request)

  prepare_response(response, options[:format])

  self
end