Sha256: fa2cef6fe9f72a964383804fed0af4726b7eae127e6309c4a09ed85e12e9275f

Contents?: true

Size: 1.15 KB

Versions: 1

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module ShopifyApp
  module RedirectForEmbedded
    include ShopifyApp::SanitizedParams

    private

    def embedded_redirect_url?
      ShopifyApp.configuration.embedded_redirect_url.present?
    end

    def embedded_param?
      embedded_redirect_url? && params[:embedded].present? && params[:embedded] == "1"
    end

    def redirect_for_embedded
      redirect_to(redirect_uri_for_embedded)
    end

    def redirect_uri_for_embedded
      redirect_query_params = {}
      redirect_uri = "https://#{ShopifyAPI::Context.host_name}#{ShopifyApp.configuration.login_url}"
      redirect_query_params[:shop] = sanitized_shop_name
      redirect_query_params[:shop] ||= referer_sanitized_shop_name if referer_sanitized_shop_name.present?
      redirect_query_params[:host] ||= params[:host] if params[:host].present?
      redirect_uri = "#{redirect_uri}?#{redirect_query_params.to_query}" if redirect_query_params.present?

      query_params = sanitized_params.except(:redirect_uri, :embedded)
      query_params[:redirectUri] = redirect_uri

      "#{ShopifyApp.configuration.embedded_redirect_url}?#{query_params.to_query}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shopify_app-20.1.0 lib/shopify_app/controller_concerns/redirect_for_embedded.rb