Module: Tweetkit::Connection
- Includes:
- Auth
- Included in:
- Client
- Defined in:
- lib/tweetkit/connection.rb
Constant Summary
collapse
- BASE_URL =
'https://api.twitter.com/2/'
Instance Method Summary
collapse
Methods included from Auth
#basic_auth?, #bearer_auth?, #token_auth?
Instance Method Details
#auth_token(type = 'bearer') ⇒ Object
41
42
43
44
45
46
|
# File 'lib/tweetkit/connection.rb', line 41
def auth_token(type = 'bearer')
case type
when 'bearer'
@bearer_token
end
end
|
#build_expansions(options) ⇒ Object
77
78
79
80
81
82
83
84
85
|
# File 'lib/tweetkit/connection.rb', line 77
def build_expansions(options)
expansions = {}
_expansions = options.delete(:expansions)
if _expansions && _expansions.size > 0
_expansions = _expansions.join(',')
expansions.merge!({ expansions: _expansions })
end
expansions
end
|
#build_fields(options) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/tweetkit/connection.rb', line 48
def build_fields(options)
fields = {}
_fields = options.delete(:fields)
if _fields && _fields.size > 0
_fields.each do |key, value|
if value.is_a?(Array)
_value = value.join(',')
else
_value = value.delete(' ')
end
_key = key.to_s.gsub('_', '.')
fields.merge!({ "#{_key}.fields" => _value })
end
end
options.each do |key, value|
if key.match?('_fields')
if value.is_a?(Array)
_value = value.join(',')
else
_value = value.delete(' ')
end
_key = key.to_s.gsub('_', '.')
options.delete(key)
fields.merge!({ _key => _value })
end
end
fields
end
|
#get(endpoint, **options) ⇒ Object
13
14
15
|
# File 'lib/tweetkit/connection.rb', line 13
def get(endpoint, **options)
request :get, endpoint, parse_query_and_convenience_headers(options)
end
|
#parse_query_and_convenience_headers(options) ⇒ Object
87
88
89
90
91
92
93
94
|
# File 'lib/tweetkit/connection.rb', line 87
def parse_query_and_convenience_headers(options)
options = options.dup
fields = build_fields(options)
options.merge!(fields)
expansions = build_expansions(options)
options.merge!(expansions)
options
end
|
#request(method, endpoint, data, **options) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/tweetkit/connection.rb', line 17
def request(method, endpoint, data, **options)
auth_type = options.delete(:auth_type)
url = URI.parse("#{BASE_URL}#{endpoint}")
if method == :get
conn = Faraday.new(params: data) do |c|
if auth_type == 'oauth1'
c.request :oauth, consumer_key: @consumer_key, consumer_secret: @consumer_secret
else
c.authorization :Bearer, @bearer_token
end
end
response = conn.get(url)
else
conn = Faraday.new do |f|
end
response = conn.post(url)
end
conn.close
::Response.new(response)
rescue StandardError => e
raise e
end
|