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]) |
||||||
@ -1,9 +1,13 @@ |
|||||||
Rails.application.routes.draw do |
Rails.application.routes.draw do |
||||||
devise_for :users |
devise_for :users |
||||||
|
|
||||||
root to: "home#index" |
root to: "home#index" |
||||||
|
|
||||||
resources :case_doctrines |
resources :case_doctrines |
||||||
resources :decisions |
resources :decisions |
||||||
resources :subject_indexes |
resources :subject_indexes |
||||||
|
|
||||||
|
namespace :api, defaults: { format: :json } do |
||||||
|
resources :jurisprudences, only: %i[index show] |
||||||
|
end |
||||||
end |
end |
||||||
|
|||||||
Loading…
Reference in new issue