lib/shopify_api/clients/http_client.rb
# typed: strict # frozen_string_literal: true module ShopifyAPI module Clients class HttpClient extend T::Sig RETRY_WAIT_TIME = 1 sig { params(base_path: String, session: T.nilable(Auth::Session)).void } def initialize(base_path:, session: nil) session ||= Context.active_session raise Errors::NoActiveSessionError, "No passed or active session" unless session @base_uri = T.let("https://#{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]) unless session.access_token.nil? || T.must(session.access_token).empty? @headers["X-Shopify-Access-Token"] = T.cast(session.access_token, String) end end sig { params(request: HttpRequest).returns(HttpResponse) } def request(request) request.verify headers = @headers headers["Content-Type"] = T.must(request.body_type) if request.body_type headers = headers.merge(T.must(request.extra_headers)) if request.extra_headers tries = 0 response = HttpResponse.new(code: 0, headers: {}, body: "") while tries < request.tries tries += 1 res = T.cast(HTTParty.send( request.http_method, request_url(request), headers: headers, query: request.query, body: request.body.class == Hash ? T.unsafe(request.body).to_json : request.body, ), HTTParty::Response) begin body = res.body.nil? || res.body.empty? ? {} : JSON.parse(res.body) rescue JSON::ParserError raise if res.code.to_i < 500 body = res.body end response = HttpResponse.new(code: res.code.to_i, headers: res.headers.to_h, body: body) if response.headers["x-shopify-api-deprecated-reason"] reason = T.must(response.headers["x-shopify-api-deprecated-reason"])[0] Context.logger.warn("Deprecated request to Shopify API at #{request.path}, received reason: #{reason}") end break if response.ok? error_message = serialized_error(response) unless [429, 500].include?(response.code) raise ShopifyAPI::Errors::HttpResponseError.new(response: response), error_message end if tries == request.tries raise ShopifyAPI::Errors::HttpResponseError.new(response: response), error_message if request.tries == 1 raise ShopifyAPI::Errors::MaxHttpRetriesExceededError.new(response: response), "Exceeded maximum retry count of #{request.tries}. Last message: #{error_message}" end if response.code == 500 || response.headers["retry-after"].nil? sleep(RETRY_WAIT_TIME) else sleep(T.must(response.headers["retry-after"])[0].to_i) end end response end protected sig { params(request: HttpRequest).returns(String) } def request_url(request) "#{@base_uri_and_path}/#{request.path}" end sig { params(response: HttpResponse).returns(String) } def serialized_error(response) body = {} body["errors"] = response.body["errors"] if response.body["errors"] if response.headers["x-request-id"] id = T.must(response.headers["x-request-id"])[0] body["error_reference"] = "If you report this error, please include this id: #{id}." end body.to_json end end end end
Source Files
- lib/shopify_api.rb
- lib/shopify_api/admin_versions.rb
- lib/shopify_api/auth.rb
- lib/shopify_api/auth/associated_user.rb
- lib/shopify_api/auth/auth_scopes.rb
- lib/shopify_api/auth/jwt_payload.rb
- lib/shopify_api/auth/oauth.rb
- lib/shopify_api/auth/oauth/auth_query.rb
- lib/shopify_api/auth/oauth/session_cookie.rb
- lib/shopify_api/auth/session.rb
- lib/shopify_api/clients/graphql/admin.rb
- lib/shopify_api/clients/graphql/client.rb
- lib/shopify_api/clients/graphql/storefront.rb
- lib/shopify_api/clients/http_client.rb
- lib/shopify_api/clients/http_request.rb
- lib/shopify_api/clients/http_response.rb
- lib/shopify_api/clients/rest/admin.rb
- lib/shopify_api/context.rb
- lib/shopify_api/errors/context_not_setup_error.rb
- lib/shopify_api/errors/cookie_not_found_error.rb
- lib/shopify_api/errors/feature_deprecated_error.rb
- lib/shopify_api/errors/http_response_error.rb
- lib/shopify_api/errors/invalid_graphql_request_error.rb
- lib/shopify_api/errors/invalid_http_request_error.rb
- lib/shopify_api/errors/invalid_jwt_token_error.rb
- lib/shopify_api/errors/invalid_oauth_error.rb
- lib/shopify_api/errors/invalid_webhook_error.rb
- lib/shopify_api/errors/invalid_webhook_registration_error.rb
- lib/shopify_api/errors/log_level_not_found_error.rb
- lib/shopify_api/errors/max_http_retries_exceeded_error.rb
- lib/shopify_api/errors/missing_jwt_token_error.rb
- lib/shopify_api/errors/missing_required_argument_error.rb
- lib/shopify_api/errors/no_active_session_error.rb
- lib/shopify_api/errors/no_session_cookie_error.rb
- lib/shopify_api/errors/no_webhook_handler.rb
- lib/shopify_api/errors/private_app_error.rb
- lib/shopify_api/errors/request_access_token_error.rb
- lib/shopify_api/errors/session_not_found_error.rb
- lib/shopify_api/errors/session_storage_error.rb
- lib/shopify_api/errors/unsupported_oauth_error.rb
- lib/shopify_api/errors/unsupported_version_error.rb
- lib/shopify_api/errors/webhook_registration_error.rb
- lib/shopify_api/inflector.rb
- lib/shopify_api/logger.rb
- lib/shopify_api/rest/base.rb
- lib/shopify_api/rest/base_errors.rb
- lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2022_04/access_scope.rb
- lib/shopify_api/rest/resources/2022_04/android_pay_key.rb
- lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2022_04/application_charge.rb
- lib/shopify_api/rest/resources/2022_04/application_credit.rb
- lib/shopify_api/rest/resources/2022_04/article.rb
- lib/shopify_api/rest/resources/2022_04/asset.rb
- lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_04/balance.rb
- lib/shopify_api/rest/resources/2022_04/blog.rb
- lib/shopify_api/rest/resources/2022_04/cancellation_request.rb
- lib/shopify_api/rest/resources/2022_04/carrier_service.rb
- lib/shopify_api/rest/resources/2022_04/checkout.rb
- lib/shopify_api/rest/resources/2022_04/collect.rb
- lib/shopify_api/rest/resources/2022_04/collection.rb
- lib/shopify_api/rest/resources/2022_04/collection_listing.rb
- lib/shopify_api/rest/resources/2022_04/comment.rb
- lib/shopify_api/rest/resources/2022_04/country.rb
- lib/shopify_api/rest/resources/2022_04/currency.rb
- lib/shopify_api/rest/resources/2022_04/custom_collection.rb
- lib/shopify_api/rest/resources/2022_04/customer.rb
- lib/shopify_api/rest/resources/2022_04/customer_address.rb
- lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb
- lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2022_04/discount_code.rb
- lib/shopify_api/rest/resources/2022_04/dispute.rb
- lib/shopify_api/rest/resources/2022_04/draft_order.rb
- lib/shopify_api/rest/resources/2022_04/event.rb
- lib/shopify_api/rest/resources/2022_04/fulfillment.rb
- lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb
- lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb
- lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb
- lib/shopify_api/rest/resources/2022_04/gift_card.rb
- lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2022_04/image.rb
- lib/shopify_api/rest/resources/2022_04/inventory_item.rb
- lib/shopify_api/rest/resources/2022_04/inventory_level.rb
- lib/shopify_api/rest/resources/2022_04/location.rb
- lib/shopify_api/rest/resources/2022_04/locations_for_move.rb
- lib/shopify_api/rest/resources/2022_04/marketing_event.rb
- lib/shopify_api/rest/resources/2022_04/metafield.rb
- lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2022_04/order.rb
- lib/shopify_api/rest/resources/2022_04/order_risk.rb
- lib/shopify_api/rest/resources/2022_04/page.rb
- lib/shopify_api/rest/resources/2022_04/payment.rb
- lib/shopify_api/rest/resources/2022_04/payment_gateway.rb
- lib/shopify_api/rest/resources/2022_04/payment_transaction.rb
- lib/shopify_api/rest/resources/2022_04/payout.rb
- lib/shopify_api/rest/resources/2022_04/policy.rb
- lib/shopify_api/rest/resources/2022_04/price_rule.rb
- lib/shopify_api/rest/resources/2022_04/product.rb
- lib/shopify_api/rest/resources/2022_04/product_listing.rb
- lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2022_04/province.rb
- lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2022_04/redirect.rb
- lib/shopify_api/rest/resources/2022_04/refund.rb
- lib/shopify_api/rest/resources/2022_04/report.rb
- lib/shopify_api/rest/resources/2022_04/resource_feedback.rb
- lib/shopify_api/rest/resources/2022_04/script_tag.rb
- lib/shopify_api/rest/resources/2022_04/shipping_zone.rb
- lib/shopify_api/rest/resources/2022_04/shop.rb
- lib/shopify_api/rest/resources/2022_04/smart_collection.rb
- lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb
- lib/shopify_api/rest/resources/2022_04/tender_transaction.rb
- lib/shopify_api/rest/resources/2022_04/theme.rb
- lib/shopify_api/rest/resources/2022_04/transaction.rb
- lib/shopify_api/rest/resources/2022_04/usage_charge.rb
- lib/shopify_api/rest/resources/2022_04/user.rb
- lib/shopify_api/rest/resources/2022_04/variant.rb
- lib/shopify_api/rest/resources/2022_04/webhook.rb
- lib/shopify_api/rest/resources/2022_07/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2022_07/access_scope.rb
- lib/shopify_api/rest/resources/2022_07/android_pay_key.rb
- lib/shopify_api/rest/resources/2022_07/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2022_07/application_charge.rb
- lib/shopify_api/rest/resources/2022_07/application_credit.rb
- lib/shopify_api/rest/resources/2022_07/article.rb
- lib/shopify_api/rest/resources/2022_07/asset.rb
- lib/shopify_api/rest/resources/2022_07/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_07/balance.rb
- lib/shopify_api/rest/resources/2022_07/blog.rb
- lib/shopify_api/rest/resources/2022_07/cancellation_request.rb
- lib/shopify_api/rest/resources/2022_07/carrier_service.rb
- lib/shopify_api/rest/resources/2022_07/checkout.rb
- lib/shopify_api/rest/resources/2022_07/collect.rb
- lib/shopify_api/rest/resources/2022_07/collection.rb
- lib/shopify_api/rest/resources/2022_07/collection_listing.rb
- lib/shopify_api/rest/resources/2022_07/comment.rb
- lib/shopify_api/rest/resources/2022_07/country.rb
- lib/shopify_api/rest/resources/2022_07/currency.rb
- lib/shopify_api/rest/resources/2022_07/custom_collection.rb
- lib/shopify_api/rest/resources/2022_07/customer.rb
- lib/shopify_api/rest/resources/2022_07/customer_address.rb
- lib/shopify_api/rest/resources/2022_07/customer_saved_search.rb
- lib/shopify_api/rest/resources/2022_07/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2022_07/discount_code.rb
- lib/shopify_api/rest/resources/2022_07/dispute.rb
- lib/shopify_api/rest/resources/2022_07/dispute_evidence.rb
- lib/shopify_api/rest/resources/2022_07/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2022_07/draft_order.rb
- lib/shopify_api/rest/resources/2022_07/event.rb
- lib/shopify_api/rest/resources/2022_07/fulfillment.rb
- lib/shopify_api/rest/resources/2022_07/fulfillment_event.rb
- lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_07/fulfillment_request.rb
- lib/shopify_api/rest/resources/2022_07/fulfillment_service.rb
- lib/shopify_api/rest/resources/2022_07/gift_card.rb
- lib/shopify_api/rest/resources/2022_07/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2022_07/image.rb
- lib/shopify_api/rest/resources/2022_07/inventory_item.rb
- lib/shopify_api/rest/resources/2022_07/inventory_level.rb
- lib/shopify_api/rest/resources/2022_07/location.rb
- lib/shopify_api/rest/resources/2022_07/locations_for_move.rb
- lib/shopify_api/rest/resources/2022_07/marketing_event.rb
- lib/shopify_api/rest/resources/2022_07/metafield.rb
- lib/shopify_api/rest/resources/2022_07/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2022_07/order.rb
- lib/shopify_api/rest/resources/2022_07/order_risk.rb
- lib/shopify_api/rest/resources/2022_07/page.rb
- lib/shopify_api/rest/resources/2022_07/payment.rb
- lib/shopify_api/rest/resources/2022_07/payment_gateway.rb
- lib/shopify_api/rest/resources/2022_07/payment_transaction.rb
- lib/shopify_api/rest/resources/2022_07/payout.rb
- lib/shopify_api/rest/resources/2022_07/policy.rb
- lib/shopify_api/rest/resources/2022_07/price_rule.rb
- lib/shopify_api/rest/resources/2022_07/product.rb
- lib/shopify_api/rest/resources/2022_07/product_listing.rb
- lib/shopify_api/rest/resources/2022_07/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2022_07/province.rb
- lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2022_07/redirect.rb
- lib/shopify_api/rest/resources/2022_07/refund.rb
- lib/shopify_api/rest/resources/2022_07/report.rb
- lib/shopify_api/rest/resources/2022_07/resource_feedback.rb
- lib/shopify_api/rest/resources/2022_07/script_tag.rb
- lib/shopify_api/rest/resources/2022_07/shipping_zone.rb
- lib/shopify_api/rest/resources/2022_07/shop.rb
- lib/shopify_api/rest/resources/2022_07/smart_collection.rb
- lib/shopify_api/rest/resources/2022_07/storefront_access_token.rb
- lib/shopify_api/rest/resources/2022_07/tender_transaction.rb
- lib/shopify_api/rest/resources/2022_07/theme.rb
- lib/shopify_api/rest/resources/2022_07/transaction.rb
- lib/shopify_api/rest/resources/2022_07/usage_charge.rb
- lib/shopify_api/rest/resources/2022_07/user.rb
- lib/shopify_api/rest/resources/2022_07/variant.rb
- lib/shopify_api/rest/resources/2022_07/webhook.rb
- lib/shopify_api/rest/resources/2022_10/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2022_10/access_scope.rb
- lib/shopify_api/rest/resources/2022_10/android_pay_key.rb
- lib/shopify_api/rest/resources/2022_10/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2022_10/application_charge.rb
- lib/shopify_api/rest/resources/2022_10/application_credit.rb
- lib/shopify_api/rest/resources/2022_10/article.rb
- lib/shopify_api/rest/resources/2022_10/asset.rb
- lib/shopify_api/rest/resources/2022_10/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_10/balance.rb
- lib/shopify_api/rest/resources/2022_10/blog.rb
- lib/shopify_api/rest/resources/2022_10/cancellation_request.rb
- lib/shopify_api/rest/resources/2022_10/carrier_service.rb
- lib/shopify_api/rest/resources/2022_10/checkout.rb
- lib/shopify_api/rest/resources/2022_10/collect.rb
- lib/shopify_api/rest/resources/2022_10/collection.rb
- lib/shopify_api/rest/resources/2022_10/collection_listing.rb
- lib/shopify_api/rest/resources/2022_10/comment.rb
- lib/shopify_api/rest/resources/2022_10/country.rb
- lib/shopify_api/rest/resources/2022_10/currency.rb
- lib/shopify_api/rest/resources/2022_10/custom_collection.rb
- lib/shopify_api/rest/resources/2022_10/customer.rb
- lib/shopify_api/rest/resources/2022_10/customer_address.rb
- lib/shopify_api/rest/resources/2022_10/customer_saved_search.rb
- lib/shopify_api/rest/resources/2022_10/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2022_10/discount_code.rb
- lib/shopify_api/rest/resources/2022_10/dispute.rb
- lib/shopify_api/rest/resources/2022_10/dispute_evidence.rb
- lib/shopify_api/rest/resources/2022_10/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2022_10/draft_order.rb
- lib/shopify_api/rest/resources/2022_10/event.rb
- lib/shopify_api/rest/resources/2022_10/fulfillment.rb
- lib/shopify_api/rest/resources/2022_10/fulfillment_event.rb
- lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb
- lib/shopify_api/rest/resources/2022_10/fulfillment_request.rb
- lib/shopify_api/rest/resources/2022_10/fulfillment_service.rb
- lib/shopify_api/rest/resources/2022_10/gift_card.rb
- lib/shopify_api/rest/resources/2022_10/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2022_10/image.rb
- lib/shopify_api/rest/resources/2022_10/inventory_item.rb
- lib/shopify_api/rest/resources/2022_10/inventory_level.rb
- lib/shopify_api/rest/resources/2022_10/location.rb
- lib/shopify_api/rest/resources/2022_10/locations_for_move.rb
- lib/shopify_api/rest/resources/2022_10/marketing_event.rb
- lib/shopify_api/rest/resources/2022_10/metafield.rb
- lib/shopify_api/rest/resources/2022_10/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2022_10/order.rb
- lib/shopify_api/rest/resources/2022_10/order_risk.rb
- lib/shopify_api/rest/resources/2022_10/page.rb
- lib/shopify_api/rest/resources/2022_10/payment.rb
- lib/shopify_api/rest/resources/2022_10/payment_gateway.rb
- lib/shopify_api/rest/resources/2022_10/payment_transaction.rb
- lib/shopify_api/rest/resources/2022_10/payout.rb
- lib/shopify_api/rest/resources/2022_10/policy.rb
- lib/shopify_api/rest/resources/2022_10/price_rule.rb
- lib/shopify_api/rest/resources/2022_10/product.rb
- lib/shopify_api/rest/resources/2022_10/product_listing.rb
- lib/shopify_api/rest/resources/2022_10/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2022_10/province.rb
- lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2022_10/redirect.rb
- lib/shopify_api/rest/resources/2022_10/refund.rb
- lib/shopify_api/rest/resources/2022_10/report.rb
- lib/shopify_api/rest/resources/2022_10/resource_feedback.rb
- lib/shopify_api/rest/resources/2022_10/script_tag.rb
- lib/shopify_api/rest/resources/2022_10/shipping_zone.rb
- lib/shopify_api/rest/resources/2022_10/shop.rb
- lib/shopify_api/rest/resources/2022_10/smart_collection.rb
- lib/shopify_api/rest/resources/2022_10/storefront_access_token.rb
- lib/shopify_api/rest/resources/2022_10/tender_transaction.rb
- lib/shopify_api/rest/resources/2022_10/theme.rb
- lib/shopify_api/rest/resources/2022_10/transaction.rb
- lib/shopify_api/rest/resources/2022_10/usage_charge.rb
- lib/shopify_api/rest/resources/2022_10/user.rb
- lib/shopify_api/rest/resources/2022_10/variant.rb
- lib/shopify_api/rest/resources/2022_10/webhook.rb
- lib/shopify_api/rest/resources/2023_01/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2023_01/access_scope.rb
- lib/shopify_api/rest/resources/2023_01/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2023_01/application_charge.rb
- lib/shopify_api/rest/resources/2023_01/application_credit.rb
- lib/shopify_api/rest/resources/2023_01/article.rb
- lib/shopify_api/rest/resources/2023_01/asset.rb
- lib/shopify_api/rest/resources/2023_01/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_01/balance.rb
- lib/shopify_api/rest/resources/2023_01/blog.rb
- lib/shopify_api/rest/resources/2023_01/cancellation_request.rb
- lib/shopify_api/rest/resources/2023_01/carrier_service.rb
- lib/shopify_api/rest/resources/2023_01/checkout.rb
- lib/shopify_api/rest/resources/2023_01/collect.rb
- lib/shopify_api/rest/resources/2023_01/collection.rb
- lib/shopify_api/rest/resources/2023_01/collection_listing.rb
- lib/shopify_api/rest/resources/2023_01/comment.rb
- lib/shopify_api/rest/resources/2023_01/country.rb
- lib/shopify_api/rest/resources/2023_01/currency.rb
- lib/shopify_api/rest/resources/2023_01/custom_collection.rb
- lib/shopify_api/rest/resources/2023_01/customer.rb
- lib/shopify_api/rest/resources/2023_01/customer_address.rb
- lib/shopify_api/rest/resources/2023_01/customer_saved_search.rb
- lib/shopify_api/rest/resources/2023_01/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2023_01/discount_code.rb
- lib/shopify_api/rest/resources/2023_01/dispute.rb
- lib/shopify_api/rest/resources/2023_01/dispute_evidence.rb
- lib/shopify_api/rest/resources/2023_01/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2023_01/draft_order.rb
- lib/shopify_api/rest/resources/2023_01/event.rb
- lib/shopify_api/rest/resources/2023_01/fulfillment.rb
- lib/shopify_api/rest/resources/2023_01/fulfillment_event.rb
- lib/shopify_api/rest/resources/2023_01/fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_01/fulfillment_request.rb
- lib/shopify_api/rest/resources/2023_01/fulfillment_service.rb
- lib/shopify_api/rest/resources/2023_01/gift_card.rb
- lib/shopify_api/rest/resources/2023_01/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2023_01/image.rb
- lib/shopify_api/rest/resources/2023_01/inventory_item.rb
- lib/shopify_api/rest/resources/2023_01/inventory_level.rb
- lib/shopify_api/rest/resources/2023_01/location.rb
- lib/shopify_api/rest/resources/2023_01/locations_for_move.rb
- lib/shopify_api/rest/resources/2023_01/marketing_event.rb
- lib/shopify_api/rest/resources/2023_01/metafield.rb
- lib/shopify_api/rest/resources/2023_01/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2023_01/order.rb
- lib/shopify_api/rest/resources/2023_01/order_risk.rb
- lib/shopify_api/rest/resources/2023_01/page.rb
- lib/shopify_api/rest/resources/2023_01/payment.rb
- lib/shopify_api/rest/resources/2023_01/payment_gateway.rb
- lib/shopify_api/rest/resources/2023_01/payment_transaction.rb
- lib/shopify_api/rest/resources/2023_01/payout.rb
- lib/shopify_api/rest/resources/2023_01/policy.rb
- lib/shopify_api/rest/resources/2023_01/price_rule.rb
- lib/shopify_api/rest/resources/2023_01/product.rb
- lib/shopify_api/rest/resources/2023_01/product_listing.rb
- lib/shopify_api/rest/resources/2023_01/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2023_01/province.rb
- lib/shopify_api/rest/resources/2023_01/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2023_01/redirect.rb
- lib/shopify_api/rest/resources/2023_01/refund.rb
- lib/shopify_api/rest/resources/2023_01/report.rb
- lib/shopify_api/rest/resources/2023_01/resource_feedback.rb
- lib/shopify_api/rest/resources/2023_01/script_tag.rb
- lib/shopify_api/rest/resources/2023_01/shipping_zone.rb
- lib/shopify_api/rest/resources/2023_01/shop.rb
- lib/shopify_api/rest/resources/2023_01/smart_collection.rb
- lib/shopify_api/rest/resources/2023_01/storefront_access_token.rb
- lib/shopify_api/rest/resources/2023_01/tender_transaction.rb
- lib/shopify_api/rest/resources/2023_01/theme.rb
- lib/shopify_api/rest/resources/2023_01/transaction.rb
- lib/shopify_api/rest/resources/2023_01/usage_charge.rb
- lib/shopify_api/rest/resources/2023_01/user.rb
- lib/shopify_api/rest/resources/2023_01/variant.rb
- lib/shopify_api/rest/resources/2023_01/webhook.rb
- lib/shopify_api/rest/resources/2023_04/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2023_04/access_scope.rb
- lib/shopify_api/rest/resources/2023_04/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2023_04/application_charge.rb
- lib/shopify_api/rest/resources/2023_04/application_credit.rb
- lib/shopify_api/rest/resources/2023_04/article.rb
- lib/shopify_api/rest/resources/2023_04/asset.rb
- lib/shopify_api/rest/resources/2023_04/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_04/balance.rb
- lib/shopify_api/rest/resources/2023_04/blog.rb
- lib/shopify_api/rest/resources/2023_04/cancellation_request.rb
- lib/shopify_api/rest/resources/2023_04/carrier_service.rb
- lib/shopify_api/rest/resources/2023_04/checkout.rb
- lib/shopify_api/rest/resources/2023_04/collect.rb
- lib/shopify_api/rest/resources/2023_04/collection.rb
- lib/shopify_api/rest/resources/2023_04/collection_listing.rb
- lib/shopify_api/rest/resources/2023_04/comment.rb
- lib/shopify_api/rest/resources/2023_04/country.rb
- lib/shopify_api/rest/resources/2023_04/currency.rb
- lib/shopify_api/rest/resources/2023_04/custom_collection.rb
- lib/shopify_api/rest/resources/2023_04/customer.rb
- lib/shopify_api/rest/resources/2023_04/customer_address.rb
- lib/shopify_api/rest/resources/2023_04/customer_saved_search.rb
- lib/shopify_api/rest/resources/2023_04/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2023_04/discount_code.rb
- lib/shopify_api/rest/resources/2023_04/dispute.rb
- lib/shopify_api/rest/resources/2023_04/dispute_evidence.rb
- lib/shopify_api/rest/resources/2023_04/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2023_04/draft_order.rb
- lib/shopify_api/rest/resources/2023_04/event.rb
- lib/shopify_api/rest/resources/2023_04/fulfillment.rb
- lib/shopify_api/rest/resources/2023_04/fulfillment_event.rb
- lib/shopify_api/rest/resources/2023_04/fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_04/fulfillment_request.rb
- lib/shopify_api/rest/resources/2023_04/fulfillment_service.rb
- lib/shopify_api/rest/resources/2023_04/gift_card.rb
- lib/shopify_api/rest/resources/2023_04/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2023_04/image.rb
- lib/shopify_api/rest/resources/2023_04/inventory_item.rb
- lib/shopify_api/rest/resources/2023_04/inventory_level.rb
- lib/shopify_api/rest/resources/2023_04/location.rb
- lib/shopify_api/rest/resources/2023_04/locations_for_move.rb
- lib/shopify_api/rest/resources/2023_04/marketing_event.rb
- lib/shopify_api/rest/resources/2023_04/metafield.rb
- lib/shopify_api/rest/resources/2023_04/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2023_04/order.rb
- lib/shopify_api/rest/resources/2023_04/order_risk.rb
- lib/shopify_api/rest/resources/2023_04/page.rb
- lib/shopify_api/rest/resources/2023_04/payment.rb
- lib/shopify_api/rest/resources/2023_04/payment_gateway.rb
- lib/shopify_api/rest/resources/2023_04/payment_transaction.rb
- lib/shopify_api/rest/resources/2023_04/payout.rb
- lib/shopify_api/rest/resources/2023_04/policy.rb
- lib/shopify_api/rest/resources/2023_04/price_rule.rb
- lib/shopify_api/rest/resources/2023_04/product.rb
- lib/shopify_api/rest/resources/2023_04/product_listing.rb
- lib/shopify_api/rest/resources/2023_04/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2023_04/province.rb
- lib/shopify_api/rest/resources/2023_04/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2023_04/redirect.rb
- lib/shopify_api/rest/resources/2023_04/refund.rb
- lib/shopify_api/rest/resources/2023_04/report.rb
- lib/shopify_api/rest/resources/2023_04/resource_feedback.rb
- lib/shopify_api/rest/resources/2023_04/script_tag.rb
- lib/shopify_api/rest/resources/2023_04/shipping_zone.rb
- lib/shopify_api/rest/resources/2023_04/shop.rb
- lib/shopify_api/rest/resources/2023_04/smart_collection.rb
- lib/shopify_api/rest/resources/2023_04/storefront_access_token.rb
- lib/shopify_api/rest/resources/2023_04/tender_transaction.rb
- lib/shopify_api/rest/resources/2023_04/theme.rb
- lib/shopify_api/rest/resources/2023_04/transaction.rb
- lib/shopify_api/rest/resources/2023_04/usage_charge.rb
- lib/shopify_api/rest/resources/2023_04/user.rb
- lib/shopify_api/rest/resources/2023_04/variant.rb
- lib/shopify_api/rest/resources/2023_04/webhook.rb
- lib/shopify_api/rest/resources/2023_07/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2023_07/access_scope.rb
- lib/shopify_api/rest/resources/2023_07/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2023_07/application_charge.rb
- lib/shopify_api/rest/resources/2023_07/application_credit.rb
- lib/shopify_api/rest/resources/2023_07/article.rb
- lib/shopify_api/rest/resources/2023_07/asset.rb
- lib/shopify_api/rest/resources/2023_07/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_07/balance.rb
- lib/shopify_api/rest/resources/2023_07/blog.rb
- lib/shopify_api/rest/resources/2023_07/cancellation_request.rb
- lib/shopify_api/rest/resources/2023_07/carrier_service.rb
- lib/shopify_api/rest/resources/2023_07/checkout.rb
- lib/shopify_api/rest/resources/2023_07/collect.rb
- lib/shopify_api/rest/resources/2023_07/collection.rb
- lib/shopify_api/rest/resources/2023_07/collection_listing.rb
- lib/shopify_api/rest/resources/2023_07/comment.rb
- lib/shopify_api/rest/resources/2023_07/country.rb
- lib/shopify_api/rest/resources/2023_07/currency.rb
- lib/shopify_api/rest/resources/2023_07/custom_collection.rb
- lib/shopify_api/rest/resources/2023_07/customer.rb
- lib/shopify_api/rest/resources/2023_07/customer_address.rb
- lib/shopify_api/rest/resources/2023_07/customer_saved_search.rb
- lib/shopify_api/rest/resources/2023_07/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2023_07/discount_code.rb
- lib/shopify_api/rest/resources/2023_07/dispute.rb
- lib/shopify_api/rest/resources/2023_07/dispute_evidence.rb
- lib/shopify_api/rest/resources/2023_07/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2023_07/draft_order.rb
- lib/shopify_api/rest/resources/2023_07/event.rb
- lib/shopify_api/rest/resources/2023_07/fulfillment.rb
- lib/shopify_api/rest/resources/2023_07/fulfillment_event.rb
- lib/shopify_api/rest/resources/2023_07/fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_07/fulfillment_request.rb
- lib/shopify_api/rest/resources/2023_07/fulfillment_service.rb
- lib/shopify_api/rest/resources/2023_07/gift_card.rb
- lib/shopify_api/rest/resources/2023_07/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2023_07/image.rb
- lib/shopify_api/rest/resources/2023_07/inventory_item.rb
- lib/shopify_api/rest/resources/2023_07/inventory_level.rb
- lib/shopify_api/rest/resources/2023_07/location.rb
- lib/shopify_api/rest/resources/2023_07/locations_for_move.rb
- lib/shopify_api/rest/resources/2023_07/marketing_event.rb
- lib/shopify_api/rest/resources/2023_07/metafield.rb
- lib/shopify_api/rest/resources/2023_07/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2023_07/order.rb
- lib/shopify_api/rest/resources/2023_07/order_risk.rb
- lib/shopify_api/rest/resources/2023_07/page.rb
- lib/shopify_api/rest/resources/2023_07/payment.rb
- lib/shopify_api/rest/resources/2023_07/payment_gateway.rb
- lib/shopify_api/rest/resources/2023_07/payment_transaction.rb
- lib/shopify_api/rest/resources/2023_07/payout.rb
- lib/shopify_api/rest/resources/2023_07/policy.rb
- lib/shopify_api/rest/resources/2023_07/price_rule.rb
- lib/shopify_api/rest/resources/2023_07/product.rb
- lib/shopify_api/rest/resources/2023_07/product_listing.rb
- lib/shopify_api/rest/resources/2023_07/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2023_07/province.rb
- lib/shopify_api/rest/resources/2023_07/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2023_07/redirect.rb
- lib/shopify_api/rest/resources/2023_07/refund.rb
- lib/shopify_api/rest/resources/2023_07/report.rb
- lib/shopify_api/rest/resources/2023_07/resource_feedback.rb
- lib/shopify_api/rest/resources/2023_07/script_tag.rb
- lib/shopify_api/rest/resources/2023_07/shipping_zone.rb
- lib/shopify_api/rest/resources/2023_07/shop.rb
- lib/shopify_api/rest/resources/2023_07/smart_collection.rb
- lib/shopify_api/rest/resources/2023_07/storefront_access_token.rb
- lib/shopify_api/rest/resources/2023_07/tender_transaction.rb
- lib/shopify_api/rest/resources/2023_07/theme.rb
- lib/shopify_api/rest/resources/2023_07/transaction.rb
- lib/shopify_api/rest/resources/2023_07/usage_charge.rb
- lib/shopify_api/rest/resources/2023_07/user.rb
- lib/shopify_api/rest/resources/2023_07/variant.rb
- lib/shopify_api/rest/resources/2023_07/webhook.rb
- lib/shopify_api/rest/resources/2023_10/abandoned_checkout.rb
- lib/shopify_api/rest/resources/2023_10/access_scope.rb
- lib/shopify_api/rest/resources/2023_10/apple_pay_certificate.rb
- lib/shopify_api/rest/resources/2023_10/application_charge.rb
- lib/shopify_api/rest/resources/2023_10/application_credit.rb
- lib/shopify_api/rest/resources/2023_10/article.rb
- lib/shopify_api/rest/resources/2023_10/asset.rb
- lib/shopify_api/rest/resources/2023_10/assigned_fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_10/balance.rb
- lib/shopify_api/rest/resources/2023_10/blog.rb
- lib/shopify_api/rest/resources/2023_10/cancellation_request.rb
- lib/shopify_api/rest/resources/2023_10/carrier_service.rb
- lib/shopify_api/rest/resources/2023_10/checkout.rb
- lib/shopify_api/rest/resources/2023_10/collect.rb
- lib/shopify_api/rest/resources/2023_10/collection.rb
- lib/shopify_api/rest/resources/2023_10/collection_listing.rb
- lib/shopify_api/rest/resources/2023_10/comment.rb
- lib/shopify_api/rest/resources/2023_10/country.rb
- lib/shopify_api/rest/resources/2023_10/currency.rb
- lib/shopify_api/rest/resources/2023_10/custom_collection.rb
- lib/shopify_api/rest/resources/2023_10/customer.rb
- lib/shopify_api/rest/resources/2023_10/customer_address.rb
- lib/shopify_api/rest/resources/2023_10/deprecated_api_call.rb
- lib/shopify_api/rest/resources/2023_10/discount_code.rb
- lib/shopify_api/rest/resources/2023_10/dispute.rb
- lib/shopify_api/rest/resources/2023_10/dispute_evidence.rb
- lib/shopify_api/rest/resources/2023_10/dispute_file_upload.rb
- lib/shopify_api/rest/resources/2023_10/draft_order.rb
- lib/shopify_api/rest/resources/2023_10/event.rb
- lib/shopify_api/rest/resources/2023_10/fulfillment.rb
- lib/shopify_api/rest/resources/2023_10/fulfillment_event.rb
- lib/shopify_api/rest/resources/2023_10/fulfillment_order.rb
- lib/shopify_api/rest/resources/2023_10/fulfillment_request.rb
- lib/shopify_api/rest/resources/2023_10/fulfillment_service.rb
- lib/shopify_api/rest/resources/2023_10/gift_card.rb
- lib/shopify_api/rest/resources/2023_10/gift_card_adjustment.rb
- lib/shopify_api/rest/resources/2023_10/image.rb
- lib/shopify_api/rest/resources/2023_10/inventory_item.rb
- lib/shopify_api/rest/resources/2023_10/inventory_level.rb
- lib/shopify_api/rest/resources/2023_10/location.rb
- lib/shopify_api/rest/resources/2023_10/locations_for_move.rb
- lib/shopify_api/rest/resources/2023_10/marketing_event.rb
- lib/shopify_api/rest/resources/2023_10/metafield.rb
- lib/shopify_api/rest/resources/2023_10/mobile_platform_application.rb
- lib/shopify_api/rest/resources/2023_10/order.rb
- lib/shopify_api/rest/resources/2023_10/order_risk.rb
- lib/shopify_api/rest/resources/2023_10/page.rb
- lib/shopify_api/rest/resources/2023_10/payment.rb
- lib/shopify_api/rest/resources/2023_10/payment_gateway.rb
- lib/shopify_api/rest/resources/2023_10/payment_transaction.rb
- lib/shopify_api/rest/resources/2023_10/payout.rb
- lib/shopify_api/rest/resources/2023_10/policy.rb
- lib/shopify_api/rest/resources/2023_10/price_rule.rb
- lib/shopify_api/rest/resources/2023_10/product.rb
- lib/shopify_api/rest/resources/2023_10/product_listing.rb
- lib/shopify_api/rest/resources/2023_10/product_resource_feedback.rb
- lib/shopify_api/rest/resources/2023_10/province.rb
- lib/shopify_api/rest/resources/2023_10/recurring_application_charge.rb
- lib/shopify_api/rest/resources/2023_10/redirect.rb
- lib/shopify_api/rest/resources/2023_10/refund.rb
- lib/shopify_api/rest/resources/2023_10/report.rb
- lib/shopify_api/rest/resources/2023_10/resource_feedback.rb
- lib/shopify_api/rest/resources/2023_10/script_tag.rb
- lib/shopify_api/rest/resources/2023_10/shipping_zone.rb
- lib/shopify_api/rest/resources/2023_10/shop.rb
- lib/shopify_api/rest/resources/2023_10/smart_collection.rb
- lib/shopify_api/rest/resources/2023_10/storefront_access_token.rb
- lib/shopify_api/rest/resources/2023_10/tender_transaction.rb
- lib/shopify_api/rest/resources/2023_10/theme.rb
- lib/shopify_api/rest/resources/2023_10/transaction.rb
- lib/shopify_api/rest/resources/2023_10/usage_charge.rb
- lib/shopify_api/rest/resources/2023_10/user.rb
- lib/shopify_api/rest/resources/2023_10/variant.rb
- lib/shopify_api/rest/resources/2023_10/webhook.rb
- lib/shopify_api/utils/graphql_proxy.rb
- lib/shopify_api/utils/hmac_validator.rb
- lib/shopify_api/utils/http_utils.rb
- lib/shopify_api/utils/session_utils.rb
- lib/shopify_api/utils/verifiable_query.rb
- lib/shopify_api/version.rb
- lib/shopify_api/webhooks/handler.rb
- lib/shopify_api/webhooks/register_result.rb
- lib/shopify_api/webhooks/registration.rb
- lib/shopify_api/webhooks/registrations/event_bridge.rb
- lib/shopify_api/webhooks/registrations/http.rb
- lib/shopify_api/webhooks/registrations/pub_sub.rb
- lib/shopify_api/webhooks/registry.rb
- lib/shopify_api/webhooks/request.rb