module ShopifyApp::RequireKnownShop

def check_shop_domain

def check_shop_domain
  redirect_to(ShopifyApp.configuration.login_url) unless current_shopify_domain
end

def check_shop_known

def check_shop_known
  @shop = SessionRepository.retrieve_shop_session_by_shopify_domain(current_shopify_domain)
  redirect_to(shop_login) unless @shop
end

def current_shopify_domain

def current_shopify_domain
  return if params[:shop].blank?
  @shopify_domain ||= ShopifyApp::Utils.sanitize_shop_domain(params[:shop])
end

def shop_login

def shop_login
  url = URI(ShopifyApp.configuration.login_url)
  url.query = URI.encode_www_form(
    shop: params[:shop],
    return_to: request.fullpath,
  )
  url.to_s
end