Method: ShopifyCLI::PartnersAPI.query
- Defined in:
- lib/shopify_cli/partners_api.rb
.query(ctx, query_name, **variables) ⇒ Object
issues a graphql query or mutation to the Shopify Partners Dashboard CLI Schema. It loads a graphql query from a file so that you do not need to use large unwieldy query strings. It also handles authentication for you as well.
#### Parameters
-
ctx: running context from your command -
query_name: name of the query you want to use, loaded from thelib/graphqldirectory. -
‘**variables`: a hash of variables to be supplied to the query or mutation
#### Raises
-
http 404 will raise a ShopifyCLI::API::APIRequestNotFoundError
-
http 400..499 will raise a ShopifyCLI::API::APIRequestClientError
-
http 500..599 will raise a ShopifyCLI::API::APIRequestServerError
-
All other codes will raise ShopifyCLI::API::APIRequestUnexpectedError
#### Returns
-
resp- graphql response data hash. This can be a different shape for every query.
#### Example
ShopifyCLI::PartnersAPI.query(@ctx, 'all_organizations')
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/shopify_cli/partners_api.rb', line 38 def query(ctx, query_name, **variables) CLI::Kit::Util.begin do api_client(ctx).query(query_name, variables: variables) end.retry_after( API::APIRequestUnauthorizedError, retries: 1, only: -> { !IdentityAuth::EnvAuthToken.partners_token_present? } ) do ShopifyCLI::IdentityAuth.new(ctx: ctx).reauthenticate end rescue API::APIRequestUnauthorizedError => e if (request_info = auth_failure_info(ctx, e)) ctx.puts(ctx.("core.api.error.failed_auth_debugging", request_info)) end ctx.abort(ctx.("core.api.error.failed_auth")) rescue API::APIRequestNotFoundError ctx.puts(ctx.("core.partners_api.error.account_not_found", ShopifyCLI::TOOL_NAME)) end |