Class: SearchConsoleApi::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/search_console_api/request.rb

Constant Summary collapse

BASE_URL =
"https://www.googleapis.com/webmasters/v3"

Class Method Summary collapse

Class Method Details

.get(access_token:, path:, params: {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/search_console_api/request.rb', line 12

def self.get(access_token:, path:, params: {})
  url = "#{BASE_URL}#{path}"
  url += "?#{URI.encode_www_form params}" unless params.empty?
  uri = URI(url)

  response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
    request = Net::HTTP::Get.new uri
    request["Authorization"] = "Bearer #{access_token}"
    request["Content-Type"] = "application/json"

    http.request request
  end
  raise SearchConsoleApi::Error.new(response.body) unless response.is_a?(Net::HTTPSuccess)

  JSON.parse response.body
end

.post(access_token:, path:, payload: nil) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/search_console_api/request.rb', line 29

def self.post(access_token:, path:, payload: nil)
  url = URI("#{BASE_URL}#{path}")

  https = Net::HTTP.new(url.host, url.port)
  https.use_ssl = true

  request = Net::HTTP::Post.new(url)
  request["Authorization"] = "Bearer #{access_token}"
  request["Content-Type"] = "application/javascript"
  request.body = payload

  response = https.request(request)
  raise SearchConsoleApi::Error.new(response.body) unless response.is_a?(Net::HTTPSuccess)

  JSON.parse response.body
end