From cf7ad9fa1ad1f696f6c0f340a614c40c1509f0f1 Mon Sep 17 00:00:00 2001 From: Angel Aviel Domaoan Date: Thu, 27 Jan 2022 03:57:28 +0000 Subject: [PATCH] Implement concern module for jurisprudences search --- .../api/jurisprudences_controller.rb | 19 +++------------- .../concerns/jurisprudence_search.rb | 22 +++++++++++++++++++ app/controllers/documents_controller.rb | 20 ++++------------- 3 files changed, 29 insertions(+), 32 deletions(-) create mode 100644 app/controllers/concerns/jurisprudence_search.rb diff --git a/app/controllers/api/jurisprudences_controller.rb b/app/controllers/api/jurisprudences_controller.rb index 61f9562..8366a39 100644 --- a/app/controllers/api/jurisprudences_controller.rb +++ b/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 diff --git a/app/controllers/concerns/jurisprudence_search.rb b/app/controllers/concerns/jurisprudence_search.rb new file mode 100644 index 0000000..5c801e2 --- /dev/null +++ b/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 diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index c4f6ff8..958bd35 100644 --- a/app/controllers/documents_controller.rb +++ b/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 - - search = Cdao::Jurisprudence.search do - fulltext search_params[:q], fields: fulltext_fields if search_params[:q].present? + include JurisprudenceSearch - 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