You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.0 KiB
39 lines
1.0 KiB
module Api |
|
class JurisprudencesController < BaseController |
|
load_and_authorize_resource :jurisprudence, class: "Cdao::Jurisprudence" |
|
skip_load_resource :jurisprudence, only: %i[index] |
|
|
|
def index |
|
attrs = %i[id reference_number title docdate ponente edited short_title year].freeze |
|
|
|
fulltext_fields = %i[reference_number title short_title].freeze |
|
|
|
search = Cdao::Jurisprudence.search do |
|
fulltext search_params[:q], fields: fulltext_fields if search_params[:q].present? |
|
|
|
fulltext_fields.each do |field| |
|
fulltext search_params[field], fields: [field] if search_params[field].present? |
|
end |
|
|
|
order_by :doc_date |
|
order_by :year |
|
|
|
paginate page: params[:page] || 1, per_page: params[:per_page] || 20 |
|
end |
|
|
|
@jurisprudences = search.results |
|
|
|
respond_with @jurisprudences |
|
end |
|
|
|
def show |
|
respond_with @jurisprudence |
|
end |
|
|
|
private |
|
|
|
def search_params |
|
params.permit(:reference_number, :title, :short_title, :q, :page, :per_page) |
|
end |
|
end |
|
end
|
|
|