module LaboratoryHelper
  extend ActiveSupport::Concern

  included do
    before_action :setup_laboratory

    helper_method :current_laboratory
    helper_method :default_setting
    helper_method :default_yun_session
  end

  def current_laboratory
    @_current_laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
  end

  def default_laboratory
    @_default_laboratory ||= Laboratory.find(1)
  end

  def default_setting
    @_default_setting ||= LaboratorySetting.find_by(laboratory_id: 1)
  end

  def setup_laboratory
    Laboratory.current = current_laboratory
  end

  def default_yun_session
    laboratory ||= (Laboratory.find_by_subdomain(request.subdomain) || Laboratory.find(1))
    @_default_yun_session = "#{laboratory.try(:identifier).split('.').first}_user_id"
  end
end