class Krb::Setup::AskShopifyAccessKey

Sets up configuration

Public Class Methods

new(setup) click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 9
def initialize(setup)
  @shop_name = setup.dig('shop_name')
end

Public Instance Methods

process() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 13
def process
  if graphql_endpoint?
    input
  else
    abort("\nInvalid credentials. Please try again.\n")
    return ''
  end
end

Private Instance Methods

ask_phrase() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 28
def ask_phrase
  'Please enter your shopify storefront access key : '
end
graphql_endpoint?() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 32
def graphql_endpoint?
  response = HTTP.headers(graphql_headers).post(graphql_url, body: graphql_payload)
  response.code == 200
end
graphql_headers() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 37
def graphql_headers
  {
    'Content-Type' => 'application/graphql',
    'X-Shopify-Storefront-Access-Token' => input
  }
end
graphql_payload() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 44
def graphql_payload
  '{ shop { name } }'
end
graphql_url() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 48
def graphql_url
  "https://#{@shop_name}.myshopify.com/api/graphql"
end
input() click to toggle source
# File lib/krb/setup/ask_shopify_access_key.rb, line 24
def input
  @input ||= prompt.mask(ask_phrase) { |q| q.required true }
end