class AppStoreConnect::Request
Public Class Methods
new(**options)
click to toggle source
# File lib/app_store_connect/request.rb, line 13 def initialize(**options) @uri = options.fetch(:uri) @options = options end
Public Instance Methods
execute()
click to toggle source
# File lib/app_store_connect/request.rb, line 18 def execute Net::HTTP.start(uri.host, uri.port, net_http_options) do |http| http.request(request) end end
Private Instance Methods
body()
click to toggle source
# File lib/app_store_connect/request.rb, line 63 def body return if http_method == :get @options.fetch(:http_body) end
headers()
click to toggle source
# File lib/app_store_connect/request.rb, line 59 def headers @options.fetch(:headers, {}) end
http_method()
click to toggle source
# File lib/app_store_connect/request.rb, line 41 def http_method @options.fetch(:http_method).to_sym end
kwargs()
click to toggle source
# File lib/app_store_connect/request.rb, line 49 def kwargs @options.fetch(:kwargs, {}) end
net_http_options()
click to toggle source
# File lib/app_store_connect/request.rb, line 45 def net_http_options { use_ssl: uri.scheme == 'https' } end
net_http_request_class()
click to toggle source
# File lib/app_store_connect/request.rb, line 76 def net_http_request_class case http_method when :get then Net::HTTP::Get when :post then Net::HTTP::Post when :delete then Net::HTTP::Delete when :patch then Net::HTTP::Patch else raise UnsupportedHTTPMethod, http_method end end
query()
click to toggle source
# File lib/app_store_connect/request.rb, line 30 def query return unless http_method == :get names = url_parameter_names(web_service_endpoint) kwargs .reject { |n| names.include?(n) } .deep_transform_keys { |k| k.to_s.camelize(:lower) } .to_query end
request()
click to toggle source
# File lib/app_store_connect/request.rb, line 87 def request net_http_request_class .new(uri, headers) .tap { |r| r.body = body if r.request_body_permitted? } end
uri()
click to toggle source
# File lib/app_store_connect/request.rb, line 53 def uri @options.fetch(:uri).tap do |uri| uri.query = query if http_method == :get end end
url_parameter_names(web_service_endpoint)
click to toggle source
# File lib/app_store_connect/request.rb, line 69 def url_parameter_names(web_service_endpoint) web_service_endpoint .url .scan(/(\{(\w+)\})/) .map { |_, n| n.to_sym } end
web_service_endpoint()
click to toggle source
# File lib/app_store_connect/request.rb, line 26 def web_service_endpoint @options.fetch(:web_service_endpoint) end