Method: ShopifyAPI::Clients::HttpClient#initialize

Defined in:
lib/shopify_api/clients/http_client.rb

#initialize(base_path:, session: nil) ⇒ HttpClient

Returns a new instance of HttpClient.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/shopify_api/clients/http_client.rb', line 12

def initialize(base_path:, session: nil)
  session ||= Context.active_session
  raise Errors::NoActiveSessionError, "No passed or active session" unless session

  api_host = Context.api_host

  @base_uri = T.let("https://#{api_host || session.shop}", String)
  @base_uri_and_path = T.let("#{@base_uri}#{base_path}", String)

  user_agent_prefix = Context.user_agent_prefix.nil? ? "" : "#{Context.user_agent_prefix} | "

  @headers = T.let({
    "User-Agent": "#{user_agent_prefix}Shopify API Library v#{VERSION} | Ruby #{RUBY_VERSION}",
    "Accept": "application/json",
  }, T::Hash[T.any(Symbol, String), T.untyped])

  @headers["Host"] = session.shop unless api_host.nil?

  unless session.access_token.nil? || T.must(session.access_token).empty?
    @headers["X-Shopify-Access-Token"] = T.cast(session.access_token, String)
  end
end