jam-cloud/web/app/controllers/api_search_controller.rb

48 lines
1.6 KiB
Ruby

class ApiSearchController < ApiController
# have to be signed in currently to see this screen
before_filter :api_signed_in_user
respond_to :json
def index
if 1 == params[Search::PARAM_MUSICIAN].to_i || 1 == params[Search::PARAM_BAND].to_i
query = params.clone
query[:remote_ip] = request.remote_ip
if 1 == query[Search::PARAM_MUSICIAN].to_i
@search = Search.musician_filter(query, current_user)
else
@search = Search.band_filter(query, current_user)
end
respond_with @search, responder: ApiResponder, :status => 200
elsif 1 == params[Search::PARAM_SESSION_INVITE].to_i
@search = Search.session_invite_search(params[:query], current_user)
else
@search = Search.text_search(params, current_user)
end
end
def musicians
if request.get?
if params[:results]
@search = MusicianSearch.user_search_filter(current_user).search_results_page
respond_with @search, responder: ApiResponder, status: 201, template: 'api_search/index'
else
render :json => MusicianSearch.search_filter_json(current_user), :status => 200
end
elsif request.post?
ms = MusicianSearch.user_search_filter(current_user)
filter = params[:filter]
if filter == 'reset'
@search = ms.reset_search_results
else
json = JSON.parse(filter, :create_additions => false)
@search = ms.search_results_page(json, [params[:page].to_i, 1].max)
end
respond_with @search, responder: ApiResponder, status: 201, template: 'api_search/index'
end
end
end