module SalesforceOrm::RecordTypeManager

Constants

FIELD_NAME

Public Instance Methods

record_type() click to toggle source
# File lib/salesforce-orm/record_type_manager.rb, line 10
def record_type
  @record_type
end
record_type=(new_record_type) click to toggle source
# File lib/salesforce-orm/record_type_manager.rb, line 6
def record_type=(new_record_type)
  @record_type = new_record_type
end
record_type_id() click to toggle source
# File lib/salesforce-orm/record_type_manager.rb, line 14
def record_type_id
  return nil unless record_type
  return @record_type_id if @record_type_id

  record_type_sobject = if defined?(Rails)
    if Rails.env.test?
      Object::RecordType.build(id: 'fake_record_type')
    elsif !Rails.env.development?
      id = Rails.cache.fetch(record_type_cache_key) do
        fetch_record_type.id
      end
      Object::RecordType.build(id: id)
    else
      fetch_record_type
    end
  else
    fetch_record_type
  end

  raise Error::RecordTypeNotFound unless record_type_sobject

  @record_type_id = record_type_sobject.id
end

Private Instance Methods

fetch_record_type() click to toggle source
# File lib/salesforce-orm/record_type_manager.rb, line 40
def fetch_record_type
  Object::RecordType.where(
    developer_name: record_type,
    sobject_type: object_name
  ).first
end
record_type_cache_key() click to toggle source
# File lib/salesforce-orm/record_type_manager.rb, line 47
def record_type_cache_key
  ['SalesforceOrm', 'RecordTypeManager', object_name, record_type].join('/')
end