Sha256: b9c9b000e62da617b0e8d40de10a802c255ef07dd93c77c0376718c378057c47

Contents?: true

Size: 1.43 KB

Versions: 20

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true

module ShopifyApp
  module AccessScopes
    class UserStrategy
      class InvalidInput < StandardError; end

      class << self
        def update_access_scopes?(user_id: nil, shopify_user_id: nil)
          return update_access_scopes_for_user_id?(user_id) if user_id
          return update_access_scopes_for_shopify_user_id?(shopify_user_id) if shopify_user_id
          raise(InvalidInput, '#update_access_scopes? requires user_id or shopify_user_id parameter inputs')
        end

        private

        def update_access_scopes_for_user_id?(user_id)
          user_access_scopes = user_access_scopes_by_user_id(user_id)
          configuration_access_scopes != user_access_scopes
        end

        def update_access_scopes_for_shopify_user_id?(shopify_user_id)
          user_access_scopes = user_access_scopes_by_shopify_user_id(shopify_user_id)
          configuration_access_scopes != user_access_scopes
        end

        def user_access_scopes_by_user_id(user_id)
          ShopifyApp::SessionRepository.retrieve_user_session(user_id)&.access_scopes
        end

        def user_access_scopes_by_shopify_user_id(shopify_user_id)
          ShopifyApp::SessionRepository.retrieve_user_session_by_shopify_user_id(shopify_user_id)&.access_scopes
        end

        def configuration_access_scopes
          ShopifyAPI::ApiAccess.new(ShopifyApp.configuration.user_access_scopes)
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
ruby_shopify_app-1.3.3 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.3.2 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.3.1 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.3.0 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.2.0 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.1.0 lib/ruby_shopify_app/access_scopes/user_strategy.rb
ruby_shopify_app-1.0.0 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.1.3 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.1.2 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.1.1 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.1.0 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.0.4 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.0.3 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.0.2 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.0.1 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-18.0.0 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-17.2.1 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-17.2.0 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-17.1.1 lib/shopify_app/access_scopes/user_strategy.rb
shopify_app-17.1.0 lib/shopify_app/access_scopes/user_strategy.rb