Skip to content

Commit

Permalink
Extract set_current_search_session and find_search_session methods fr…
Browse files Browse the repository at this point in the history
…om current_search_session
  • Loading branch information
cbeer committed Jul 1, 2016
1 parent e25d118 commit d353959
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions app/controllers/concerns/blacklight/search_context.rb
Expand Up @@ -12,7 +12,7 @@ module Blacklight::SearchContext
module ClassMethods
# Save the submitted search parameters in the search session
def record_search_parameters opts = { only: :index}
before_action :current_search_session, opts
before_action :set_current_search_session, opts
end
end

Expand All @@ -28,10 +28,16 @@ def search_session

# The current search session
def current_search_session
@current_search_session ||= find_search_session
end

@current_search_session ||= if start_new_search_session?
find_or_initialize_search_session_from_params search_state.to_h
elsif params[:search_context].present?
# Persist the current search session id to the user's session
def set_current_search_session
search_session['id'] = current_search_session.id if current_search_session
end

def find_search_session
if params[:search_context].present?
find_or_initialize_search_session_from_params JSON.load(params[:search_context])
elsif params[:search_id].present?
begin
Expand All @@ -40,17 +46,15 @@ def current_search_session
rescue ActiveRecord::RecordNotFound
nil
end
elsif start_new_search_session?
find_or_initialize_search_session_from_params search_state.to_h
elsif search_session['id']
begin
searches_from_history.find(search_session['id'])
rescue ActiveRecord::RecordNotFound
nil
end
end

search_session['id'] = @current_search_session.id if @current_search_session

@current_search_session
end

##
Expand Down

0 comments on commit d353959

Please sign in to comment.