6 changed files with 58 additions and 2 deletions
@ -0,0 +1,5 @@
|
||||
module Api |
||||
class BaseController < ApplicationController |
||||
respond_to :json |
||||
end |
||||
end |
||||
@ -0,0 +1,39 @@
|
||||
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 |
||||
@ -0,0 +1,3 @@
|
||||
json.array!(@jurisprudences) do |jurisprudence| |
||||
json.extract! jurisprudence, *%i[id reference_number title docdate ponente edited short_title year] |
||||
end |
||||
@ -0,0 +1 @@
|
||||
json.(@jurisprudence, *%i[id reference_number title docdate ponente edited short_title year content]) |
||||
Loading…
Reference in new issue