Class: MailchimpAPI::Request
- Inherits:
-
Object
- Object
- MailchimpAPI::Request
- Defined in:
- lib/mailchimp-api/request.rb
Overview
Request class for handling Mailchimp API requests
Instance Attribute Summary collapse
- #http_request ⇒ Net::HTTP::Request, ... readonly
- #init_base_url ⇒ Net::HTTP::Request, ... readonly
- #init_body ⇒ Net::HTTP::Request, ... readonly
- #init_headers ⇒ Net::HTTP::Request, ... readonly
- #init_http_method ⇒ Net::HTTP::Request, ... readonly
- #init_path ⇒ Net::HTTP::Request, ... readonly
- #init_query ⇒ Net::HTTP::Request, ... readonly
Instance Method Summary collapse
-
#body ⇒ String?
HTTP request body.
-
#headers ⇒ Hash
HTTP request headers.
-
#initialize(http_method, url:, path:, query: nil, body: nil, headers: nil) ⇒ Request
constructor
Initializes a new API request.
-
#method ⇒ String
HTTP request method name.
-
#path ⇒ String
HTTP request full path.
-
#query ⇒ Hash
HTTP request query params.
-
#uri ⇒ URI
HTTP request URI.
Constructor Details
#initialize(http_method, url:, path:, query: nil, body: nil, headers: nil) ⇒ Request
Initializes a new API request
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/mailchimp-api/request.rb', line 39 def initialize(http_method, url:, path:, query: nil, body: nil, headers: nil) @init_http_method = http_method @init_url = url @init_path = path @init_query = query @init_body = body @init_headers = headers uri = prepare_uri(url, path, query) headers = prepare_headers(headers) body = prepare_body(body) http_method = prepare_http_method(http_method, headers) @http_request = build_http_request(http_method, uri: uri, body: body, headers: headers) end |
Instance Attribute Details
#http_request ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def http_request @http_request end |
#init_base_url ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_base_url @init_base_url end |
#init_body ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_body @init_body end |
#init_headers ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_headers @init_headers end |
#init_http_method ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_http_method @init_http_method end |
#init_path ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_path @init_path end |
#init_query ⇒ Net::HTTP::Request, ... (readonly)
16 17 18 |
# File 'lib/mailchimp-api/request.rb', line 16 def init_query @init_query end |
Instance Method Details
#body ⇒ String?
Returns HTTP request body.
79 80 81 |
# File 'lib/mailchimp-api/request.rb', line 79 def body http_request.body end |
#headers ⇒ Hash
Returns HTTP request headers.
93 94 95 |
# File 'lib/mailchimp-api/request.rb', line 93 def headers http_request.each_header.to_h end |
#method ⇒ String
Returns HTTP request method name.
58 59 60 |
# File 'lib/mailchimp-api/request.rb', line 58 def method http_request.method # "GET", "POST", "PUT", "PATCH", "DELETE" end |
#path ⇒ String
Returns HTTP request full path.
65 66 67 |
# File 'lib/mailchimp-api/request.rb', line 65 def path http_request.path end |
#query ⇒ Hash
Returns HTTP request query params.
86 87 88 |
# File 'lib/mailchimp-api/request.rb', line 86 def query @query ||= uri.query ? URI.decode_www_form(uri.query).to_h.transform_keys!(&:to_sym) : {} end |
#uri ⇒ URI
Returns HTTP request URI.
72 73 74 |
# File 'lib/mailchimp-api/request.rb', line 72 def uri http_request.uri end |