Module: Bobot::GraphFacebook::ClassMethods

Defined in:
lib/bobot/graph_facebook.rb

Class Method Summary collapse

Class Method Details

.graph_delete(path, query: {}, body: {}) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/bobot/graph_facebook.rb', line 50

def graph_delete(path, query: {}, body: {})
  url = "#{GRAPH_FB_URL}#{path}".freeze
  graph_body = ActiveSupport::JSON.encode(body)
  response = ::Typhoeus::Request.delete(
    url,
    params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
    body: graph_body,
    headers: GRAPH_HEADERS,
    ssl_verifypeer: false,
  )
  json = (ActiveSupport::JSON.decode(response.send(:body) || '{}') rescue nil)
  Bobot::ErrorParser.raise_errors_from_html(response, graph_body) if json.nil?
  unless Rails.env.production?
    Rails.logger.debug "[DELETE] >> #{url}"
    Rails.logger.debug "[DELETE] << #{json}"
  end
  Bobot::ErrorParser.raise_errors_from(json, graph_body)
  json
end

.graph_get(path, query: {}) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bobot/graph_facebook.rb', line 10

def graph_get(path, query: {})
  url = "#{GRAPH_FB_URL}#{path}".freeze
  response = ::Typhoeus::Request.get(
    url,
    params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
    headers: GRAPH_HEADERS,
    ssl_verifypeer: false,
  )
  json = (ActiveSupport::JSON.decode(response.send(:body) || '{}') rescue nil)
  Bobot::ErrorParser.raise_errors_from_html(response, graph_body) if json.nil?
  unless Rails.env.production?
    Rails.logger.debug "[GET] >> #{url}"
    Rails.logger.debug "[GET] << #{json}"
  end
  Bobot::ErrorParser.raise_errors_from(json)
  json
end

.graph_post(path, query: {}, body: {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/bobot/graph_facebook.rb', line 29

def graph_post(path, query: {}, body: {})
  url = "#{GRAPH_FB_URL}#{path}".freeze
  graph_body = ActiveSupport::JSON.encode(body)
  response = ::Typhoeus::Request.post(
    url,
    params: URI.encode_www_form(query.reverse_merge(include_headers: false)),
    body: graph_body,
    headers: GRAPH_HEADERS,
    ssl_verifypeer: false,
  )
  json = (ActiveSupport::JSON.decode(response.send(:body) || '{}') rescue nil)
  Bobot::ErrorParser.raise_errors_from_html(response, graph_body) if json.nil?
  unless Rails.env.production?
    Rails.logger.debug "[POST] >> #{url}"
    Rails.logger.debug "[POST] << #{json}"
  end
  Bobot::ErrorParser.raise_errors_from(json, graph_body)
  json
end