Class: Mercadopago::RequestOptions
- Inherits:
-
Object
- Object
- Mercadopago::RequestOptions
- Defined in:
- lib/mercadopago/config/request_options.rb
Overview
Encapsulates per-request configuration: authentication, timeouts, retry policy, and optional MercadoPago partner/platform headers.
An instance is created automatically by SDK#initialize but can also be built manually and passed to individual resource calls via the request_options: keyword to override the SDK defaults.
Instance Attribute Summary collapse
-
#access_token ⇒ String?
OAuth access token used for Bearer authentication.
-
#connection_timeout ⇒ Float
HTTP timeout in seconds (default: 60.0).
-
#corporation_id ⇒ String?
MercadoPago corporation identifier (x-corporation-id header).
-
#custom_headers ⇒ Hash?
Extra headers merged into every request.
-
#integrator_id ⇒ String?
MercadoPago integrator identifier (x-integrator-id header).
-
#max_retries ⇒ Object
Returns the value of attribute max_retries.
-
#platform_id ⇒ String?
MercadoPago platform identifier (x-platform-id header).
Instance Method Summary collapse
-
#get_headers ⇒ Hash
Builds the full HTTP headers hash for a request.
-
#initialize(access_token: nil, connection_timeout: 60.0, custom_headers: nil, corporation_id: nil, integrator_id: nil, platform_id: nil, max_retries: 3) ⇒ RequestOptions
constructor
Builds a new request configuration.
Constructor Details
#initialize(access_token: nil, connection_timeout: 60.0, custom_headers: nil, corporation_id: nil, integrator_id: nil, platform_id: nil, max_retries: 3) ⇒ RequestOptions
Builds a new request configuration.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/mercadopago/config/request_options.rb', line 43 def initialize(access_token: nil, connection_timeout: 60.0, custom_headers: nil, corporation_id: nil, integrator_id: nil, platform_id: nil, max_retries: 3) self.access_token = access_token self.connection_timeout = connection_timeout self.custom_headers = custom_headers self.corporation_id = corporation_id self.integrator_id = integrator_id self.platform_id = platform_id self.max_retries = max_retries @config = Config.new end |
Instance Attribute Details
#access_token ⇒ String?
Returns OAuth access token used for Bearer authentication.
30 31 32 |
# File 'lib/mercadopago/config/request_options.rb', line 30 def access_token @access_token end |
#connection_timeout ⇒ Float
Returns HTTP timeout in seconds (default: 60.0).
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
#corporation_id ⇒ String?
Returns MercadoPago corporation identifier (x-corporation-id header).
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
#custom_headers ⇒ Hash?
Returns extra headers merged into every request.
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
#integrator_id ⇒ String?
Returns MercadoPago integrator identifier (x-integrator-id header).
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
#max_retries ⇒ Object
Returns the value of attribute max_retries.
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
#platform_id ⇒ String?
Returns MercadoPago platform identifier (x-platform-id header).
30 31 |
# File 'lib/mercadopago/config/request_options.rb', line 30 attr_reader :access_token, :connection_timeout, :custom_headers, :corporation_id, :integrator_id, :platform_id, :max_retries |
Instance Method Details
#get_headers ⇒ Hash
Builds the full HTTP headers hash for a request.
Includes authorization, tracking, idempotency, user-agent, and any optional partner/custom headers. A unique idempotency key (UUID v4) is generated on every call.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/mercadopago/config/request_options.rb', line 68 def get_headers headers = { 'Authorization': "Bearer #{@access_token}", 'x-product-id' => @config.product_id, 'x-tracking-id' => @config.tracking_id, 'x-idempotency-key' => SecureRandom.uuid, 'User-Agent' => @config.user_agent, 'Accept': @config.mime_json } headers['x-corporation-id'] = @corporation_id unless @corporation_id.nil? headers['x-integrator-id'] = @integrator_id unless @integrator_id.nil? headers['x-platform-id'] = @platform_id unless @platform_id.nil? headers.merge!(@custom_headers) unless @custom_headers.nil? headers end |