Sha256: 6cba29427b03a0a4a7cbb7cd8d9ad648553d7d51a3b446b57cfa50a3826eedc1

Contents?: true

Size: 1.14 KB

Versions: 8

Compression:

Stored size: 1.14 KB

Contents

# typed: strict
# frozen_string_literal: true

module ShopifyAPI
  module Clients
    module Graphql
      class Client
        extend T::Sig

        sig { params(session: T.nilable(Auth::Session), base_path: String).void }
        def initialize(session:, base_path:)
          @http_client = T.let(HttpClient.new(session: session, base_path: base_path), HttpClient)
        end

        sig do
          params(
            query: String,
            variables: T.nilable(T::Hash[T.any(Symbol, String), T.untyped]),
            headers: T.nilable(T::Hash[T.any(Symbol, String), T.untyped]),
            tries: Integer
          ).returns(HttpResponse)
        end
        def query(query:, variables: nil, headers: nil, tries: 1)
          body = { query: query, variables: variables }
          @http_client.request(
            HttpRequest.new(
              http_method: :post,
              path: "#{Context.api_version}/graphql.json",
              body: body,
              query: nil,
              extra_headers: headers,
              body_type: "application/json",
              tries: tries
            )
          )
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
shopify_api-11.1.0 lib/shopify_api/clients/graphql/client.rb
shopify_api-11.0.1 lib/shopify_api/clients/graphql/client.rb
shopify_api-11.0.0 lib/shopify_api/clients/graphql/client.rb
shopify_api-10.1.0 lib/shopify_api/clients/graphql/client.rb
shopify_api-10.0.3 lib/shopify_api/clients/graphql/client.rb
shopify_api-10.0.2 lib/shopify_api/clients/graphql/client.rb
shopify_api-10.0.1 lib/shopify_api/clients/graphql/client.rb
shopify_api-10.0.0 lib/shopify_api/clients/graphql/client.rb