Sha256: 5039be0ce57c428accf0717f9612bd734d4fe8eab0a2cf63144452d8079651ae

Contents?: true

Size: 741 Bytes

Versions: 17

Compression:

Stored size: 741 Bytes

Contents

module ShopifyApp
  module SessionStorage
    extend ActiveSupport::Concern

    included do
      validates :shopify_domain, presence: true, uniqueness: true
      validates :shopify_token, presence: true
    end

    def with_shopify_session(&block)
      ShopifyAPI::Session.temp(shopify_domain, shopify_token, &block)
    end

    class_methods do
      def store(session)
        shop = self.find_or_initialize_by(shopify_domain: session.url)
        shop.shopify_token = session.token
        shop.save!
        shop.id
      end

      def retrieve(id)
        return unless id

        if shop = self.find_by(id: id)
          ShopifyAPI::Session.new(shop.shopify_domain, shop.shopify_token)
        end
      end
    end

  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
shopify_app-8.6.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.5.1 lib/shopify_app/session/session_storage.rb
shopify_app-8.5.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.4.2 lib/shopify_app/session/session_storage.rb
shopify_app-8.4.1 lib/shopify_app/session/session_storage.rb
shopify_app-8.4.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.3.2 lib/shopify_app/session/session_storage.rb
shopify_app-8.3.1 lib/shopify_app/session/session_storage.rb
shopify_app-8.3.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.6 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.5 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.4 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.2 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.1 lib/shopify_app/session/session_storage.rb
shopify_app-8.2.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.1.0 lib/shopify_app/session/session_storage.rb
shopify_app-8.0.0 lib/shopify_app/session/session_storage.rb