Class: X::Client
- Inherits:
-
Object
- Object
- X::Client
- Extended by:
- Forwardable
- Includes:
- ClientCredentials
- Defined in:
- lib/x/client.rb
Overview
A client for interacting with the X API
Constant Summary collapse
- DEFAULT_BASE_URL =
Default base URL for the X API
"https://api.twitter.com/2/".freeze
- DEFAULT_ARRAY_CLASS =
Default class for parsing JSON arrays
Array- DEFAULT_OBJECT_CLASS =
Default class for parsing JSON objects
Hash
Instance Attribute Summary collapse
-
#authenticator ⇒ Authenticator
readonly
The authenticator for API requests.
-
#base_url ⇒ String
The base URL for API requests.
-
#default_array_class ⇒ Class
The default class for parsing JSON arrays.
-
#default_object_class ⇒ Class
The default class for parsing JSON objects.
Attributes included from ClientCredentials
#access_token, #access_token_secret, #api_key, #api_key_secret, #bearer_token, #client_id, #client_secret, #refresh_token
Instance Method Summary collapse
-
#delete(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a DELETE request to the X API.
-
#get(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a GET request to the X API.
-
#initialize(api_key: nil, api_key_secret: nil, access_token: nil, access_token_secret: nil, bearer_token: nil, client_id: nil, client_secret: nil, refresh_token: nil, base_url: DEFAULT_BASE_URL, open_timeout: Connection::DEFAULT_OPEN_TIMEOUT, read_timeout: Connection::DEFAULT_READ_TIMEOUT, write_timeout: Connection::DEFAULT_WRITE_TIMEOUT, debug_output: Connection::DEFAULT_DEBUG_OUTPUT, proxy_url: nil, default_array_class: DEFAULT_ARRAY_CLASS, default_object_class: DEFAULT_OBJECT_CLASS, max_redirects: RedirectHandler::DEFAULT_MAX_REDIRECTS) ⇒ Client
constructor
Initialize a new X API client.
-
#post(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a POST request to the X API.
-
#put(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a PUT request to the X API.
Constructor Details
#initialize(api_key: nil, api_key_secret: nil, access_token: nil, access_token_secret: nil, bearer_token: nil, client_id: nil, client_secret: nil, refresh_token: nil, base_url: DEFAULT_BASE_URL, open_timeout: Connection::DEFAULT_OPEN_TIMEOUT, read_timeout: Connection::DEFAULT_READ_TIMEOUT, write_timeout: Connection::DEFAULT_WRITE_TIMEOUT, debug_output: Connection::DEFAULT_DEBUG_OUTPUT, proxy_url: nil, default_array_class: DEFAULT_ARRAY_CLASS, default_object_class: DEFAULT_OBJECT_CLASS, max_redirects: RedirectHandler::DEFAULT_MAX_REDIRECTS) ⇒ Client
Initialize a new X API client
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/x/client.rb', line 84 def initialize(api_key: nil, api_key_secret: nil, access_token: nil, access_token_secret: nil, bearer_token: nil, client_id: nil, client_secret: nil, refresh_token: nil, base_url: DEFAULT_BASE_URL, open_timeout: Connection::DEFAULT_OPEN_TIMEOUT, read_timeout: Connection::DEFAULT_READ_TIMEOUT, write_timeout: Connection::DEFAULT_WRITE_TIMEOUT, debug_output: Connection::DEFAULT_DEBUG_OUTPUT, proxy_url: nil, default_array_class: DEFAULT_ARRAY_CLASS, default_object_class: DEFAULT_OBJECT_CLASS, max_redirects: RedirectHandler::DEFAULT_MAX_REDIRECTS) initialize_credentials(api_key:, api_key_secret:, access_token:, access_token_secret:, bearer_token:, client_id:, client_secret:, refresh_token:) initialize_authenticator @base_url = base_url @default_array_class = default_array_class @default_object_class = default_object_class @connection = Connection.new(open_timeout:, read_timeout:, write_timeout:, debug_output:, proxy_url:) @request_builder = RequestBuilder.new @redirect_handler = RedirectHandler.new(connection: @connection, request_builder: @request_builder, max_redirects:) @response_parser = ResponseParser.new end |
Instance Attribute Details
#authenticator ⇒ Authenticator (readonly)
The authenticator for API requests
52 53 54 |
# File 'lib/x/client.rb', line 52 def authenticator @authenticator end |
#base_url ⇒ String
The base URL for API requests
31 32 33 |
# File 'lib/x/client.rb', line 31 def base_url @base_url end |
#default_array_class ⇒ Class
The default class for parsing JSON arrays
38 39 40 |
# File 'lib/x/client.rb', line 38 def default_array_class @default_array_class end |
#default_object_class ⇒ Class
The default class for parsing JSON objects
45 46 47 |
# File 'lib/x/client.rb', line 45 def default_object_class @default_object_class end |
Instance Method Details
#delete(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a DELETE request to the X API
143 144 145 |
# File 'lib/x/client.rb', line 143 def delete(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) execute_request(:delete, endpoint, headers:, array_class:, object_class:) end |
#get(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a GET request to the X API
113 114 115 |
# File 'lib/x/client.rb', line 113 def get(endpoint, headers: {}, array_class: default_array_class, object_class: default_object_class) execute_request(:get, endpoint, headers:, array_class:, object_class:) end |
#post(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a POST request to the X API
123 124 125 |
# File 'lib/x/client.rb', line 123 def post(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) execute_request(:post, endpoint, body:, headers:, array_class:, object_class:) end |
#put(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) ⇒ Hash, ...
Perform a PUT request to the X API
133 134 135 |
# File 'lib/x/client.rb', line 133 def put(endpoint, body = nil, headers: {}, array_class: default_array_class, object_class: default_object_class) execute_request(:put, endpoint, body:, headers:, array_class:, object_class:) end |