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