Sha256: 1e5d42eb5ea90a261f42fccf3c43f7ff71d7e759537e8868aebf50c6e35e1350

Contents?: true

Size: 1.04 KB

Versions: 13

Compression:

Stored size: 1.04 KB

Contents

require "timber/context"
require "timber/util"

module Timber
  module Contexts
    # The organization context tracks the organization of the currently
    # authenticated user.
    #
    # You will want to add this context at the time you determine
    # the organization a user belongs to, typically in the authentication
    # flow.
    #
    # Example:
    #
    #   organization_context = Timber::Contexts::Organization.new(id: "abc1234", name: "Timber Inc")
    #   logger.with_context(organization_context) do
    #     # Logging will automatically include this context
    #     logger.info("This is a log message")
    #   end
    #
    class Organization < Context
      @keyspace = :organization

      attr_reader :id, :name

      def initialize(attributes)
        @id = Timber::Util::Object.try(attributes[:id], :to_s)
        @name = attributes[:name]
      end

      # Builds a hash representation containing simple objects, suitable for serialization (JSON).
      def as_json(_options = {})
        {id: id, name: name}
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
timber-2.5.1 lib/timber/contexts/organization.rb
timber-2.5.0 lib/timber/contexts/organization.rb
timber-2.4.0 lib/timber/contexts/organization.rb
timber-2.3.4 lib/timber/contexts/organization.rb
timber-2.3.3 lib/timber/contexts/organization.rb
timber-2.3.2 lib/timber/contexts/organization.rb
timber-2.3.1 lib/timber/contexts/organization.rb
timber-2.3.0 lib/timber/contexts/organization.rb
timber-2.2.3 lib/timber/contexts/organization.rb
timber-2.2.2 lib/timber/contexts/organization.rb
timber-2.2.1 lib/timber/contexts/organization.rb
timber-2.2.0 lib/timber/contexts/organization.rb
timber-2.1.10 lib/timber/contexts/organization.rb