Browse Source

Implement concern module for jurisprudences search

pull/6/head
Angel Aviel Domaoan 4 years ago committed by Angel Aviel Domaoan
parent
commit
cf7ad9fa1a
  1. 19
      app/controllers/api/jurisprudences_controller.rb
  2. 22
      app/controllers/concerns/jurisprudence_search.rb
  3. 20
      app/controllers/documents_controller.rb

19
app/controllers/api/jurisprudences_controller.rb

@ -1,25 +1,12 @@
module Api
class JurisprudencesController < BaseController
include JurisprudenceSearch
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
search = jurisprudence_search(search_params)
@jurisprudences = search.results

22
app/controllers/concerns/jurisprudence_search.rb

@ -0,0 +1,22 @@
module JurisprudenceSearch
def jurisprudence_search(search_params)
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: search_params[:page] || 1, per_page: search_params[:per_page] || 20
end
search
end
end

20
app/controllers/documents_controller.rb

@ -1,22 +1,10 @@
class DocumentsController < ApplicationController
load_and_authorize_resource :document, class: "Cdao::Jurisprudence"
def index
attrs = %i[id reference_number title docdate ponente edited short_title year].freeze
fulltext_fields = %i[reference_number title short_title].freeze
include JurisprudenceSearch
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
load_and_authorize_resource :document, class: "Cdao::Jurisprudence"
paginate page: params[:page] || 1, per_page: params[:per_page] || 20
end
def index
search = jurisprudence_search(search_params)
@jurisprudences = search.results

Loading…
Cancel
Save