From 61b87e77cd548cefb5d8d79b8bf2cc79e3a45018 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Mon, 5 Jun 2023 17:21:59 +0100 Subject: [PATCH] refactor: rename to filter manager --- app/controllers/lettings_logs_controller.rb | 16 ++++++++-------- app/controllers/modules/search_filter.rb | 4 ++-- app/controllers/organisations_controller.rb | 16 ++++++++-------- app/controllers/sales_logs_controller.rb | 16 ++++++++-------- app/jobs/email_csv_job.rb | 4 ++-- .../{filter_service.rb => filter_manager.rb} | 2 +- ...er_service_spec.rb => filter_manager_spec.rb} | 2 +- 7 files changed, 30 insertions(+), 30 deletions(-) rename app/services/{filter_service.rb => filter_manager.rb} (99%) rename spec/services/{filter_service_spec.rb => filter_manager_spec.rb} (98%) diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index 39af74d6c..81ff7777e 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -4,7 +4,7 @@ class LettingsLogsController < LogsController before_action :find_resource, only: %i[update show] before_action :session_filters, if: :current_user, only: %i[index email_csv download_csv] - before_action -> { filter_service.serialize_filters_to_session }, if: :current_user, only: %i[index email_csv download_csv] + before_action -> { filter_manager.serialize_filters_to_session }, if: :current_user, only: %i[index email_csv download_csv] before_action :authenticate_scope!, only: %i[download_csv email_csv] before_action :extract_bulk_upload_from_session_filters, only: [:index] @@ -14,7 +14,7 @@ class LettingsLogsController < LogsController respond_to do |format| format.html do all_logs = current_user.lettings_logs.visible - unpaginated_filtered_logs = filter_service.filtered_logs(all_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(all_logs, search_term, session_filters) @search_term = search_term @pagy, @logs = pagy(unpaginated_filtered_logs) @@ -87,7 +87,7 @@ class LettingsLogsController < LogsController end def download_csv - unpaginated_filtered_logs = filter_service.filtered_logs(current_user.lettings_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(current_user.lettings_logs, search_term, session_filters) render "download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: email_csv_lettings_logs_path, codes_only: codes_only_export? } end @@ -115,11 +115,11 @@ class LettingsLogsController < LogsController private def session_filters - filter_service.session_filters + filter_manager.session_filters end - def filter_service - FilterService.new(current_user:, session:, params:, filter_type: "lettings_logs") + def filter_manager + FilterManager.new(current_user:, session:, params:, filter_type: "lettings_logs") end def org_params @@ -139,8 +139,8 @@ private end def extract_bulk_upload_from_session_filters - filter_service = FilterService.new(current_user:, session:, params:, filter_type: "lettings_logs") - @bulk_upload = filter_service.bulk_upload + filter_manager = FilterManager.new(current_user:, session:, params:, filter_type: "lettings_logs") + @bulk_upload = filter_manager.bulk_upload end def permitted_log_params diff --git a/app/controllers/modules/search_filter.rb b/app/controllers/modules/search_filter.rb index 82bf0d6c0..2681c4bfb 100644 --- a/app/controllers/modules/search_filter.rb +++ b/app/controllers/modules/search_filter.rb @@ -1,9 +1,9 @@ module Modules::SearchFilter def filtered_collection(base_collection, search_term = nil) - FilterService.filter_by_search(base_collection, search_term) + FilterManager.filter_by_search(base_collection, search_term) end def filtered_users(base_collection, search_term = nil) - FilterService.filter_by_search(base_collection, search_term).includes(:organisation) + FilterManager.filter_by_search(base_collection, search_term).includes(:organisation) end end diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index 13ca25e27..b49968ed0 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -6,7 +6,7 @@ class OrganisationsController < ApplicationController before_action :find_resource, except: %i[index new create] before_action :authenticate_scope!, except: [:index] before_action :session_filters, if: -> { current_user.support? || current_user.organisation.has_managing_agents? }, only: %i[lettings_logs sales_logs email_lettings_csv download_lettings_csv email_sales_csv download_sales_csv] - before_action -> { filter_service.serialize_filters_to_session }, if: -> { current_user.support? || current_user.organisation.has_managing_agents? }, only: %i[lettings_logs sales_logs email_lettings_csv download_lettings_csv email_sales_csv download_sales_csv] + before_action -> { filter_manager.serialize_filters_to_session }, if: -> { current_user.support? || current_user.organisation.has_managing_agents? }, only: %i[lettings_logs sales_logs email_lettings_csv download_lettings_csv email_sales_csv download_sales_csv] def index redirect_to organisation_path(current_user.organisation) unless current_user.support? @@ -90,7 +90,7 @@ class OrganisationsController < ApplicationController def lettings_logs organisation_logs = LettingsLog.visible.where(owning_organisation_id: @organisation.id) - unpaginated_filtered_logs = filter_service.filtered_logs(organisation_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters) respond_to do |format| format.html do @@ -107,7 +107,7 @@ class OrganisationsController < ApplicationController def download_lettings_csv organisation_logs = LettingsLog.visible.where(owning_organisation_id: @organisation.id) - unpaginated_filtered_logs = filter_service.filtered_logs(organisation_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters) codes_only = params.require(:codes_only) == "true" render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: lettings_logs_email_csv_organisation_path, codes_only: } @@ -120,7 +120,7 @@ class OrganisationsController < ApplicationController def sales_logs organisation_logs = SalesLog.where(owning_organisation_id: @organisation.id) - unpaginated_filtered_logs = filter_service.filtered_logs(organisation_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters) respond_to do |format| format.html do @@ -141,7 +141,7 @@ class OrganisationsController < ApplicationController def download_sales_csv organisation_logs = SalesLog.visible.where(owning_organisation_id: @organisation.id) - unpaginated_filtered_logs = filter_service.filtered_logs(organisation_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters) codes_only = params.require(:codes_only) == "true" render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: sales_logs_email_csv_organisation_path, codes_only: } @@ -167,11 +167,11 @@ private end def session_filters - filter_service.session_filters + filter_manager.session_filters end - def filter_service - FilterService.new(current_user:, session:, params:, filter_type:) + def filter_manager + FilterManager.new(current_user:, session:, params:, filter_type:) end def org_params diff --git a/app/controllers/sales_logs_controller.rb b/app/controllers/sales_logs_controller.rb index 944033e9b..23bffadf6 100644 --- a/app/controllers/sales_logs_controller.rb +++ b/app/controllers/sales_logs_controller.rb @@ -2,7 +2,7 @@ class SalesLogsController < LogsController rescue_from ActiveRecord::RecordNotFound, with: :render_not_found before_action :session_filters, if: :current_user, only: %i[index email_csv download_csv] - before_action -> { filter_service.serialize_filters_to_session }, if: :current_user, only: %i[index email_csv download_csv] + before_action -> { filter_manager.serialize_filters_to_session }, if: :current_user, only: %i[index email_csv download_csv] before_action :authenticate_scope!, only: %i[download_csv email_csv] before_action :extract_bulk_upload_from_session_filters, only: [:index] @@ -16,7 +16,7 @@ class SalesLogsController < LogsController respond_to do |format| format.html do all_logs = current_user.sales_logs.visible - unpaginated_filtered_logs = filter_service.filtered_logs(all_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(all_logs, search_term, session_filters) @search_term = search_term @pagy, @logs = pagy(unpaginated_filtered_logs) @@ -58,7 +58,7 @@ class SalesLogsController < LogsController end def download_csv - unpaginated_filtered_logs = filter_service.filtered_logs(current_user.sales_logs, search_term, session_filters) + unpaginated_filtered_logs = filter_manager.filtered_logs(current_user.sales_logs, search_term, session_filters) render "download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: email_csv_sales_logs_path, codes_only: codes_only_export? } end @@ -82,16 +82,16 @@ class SalesLogsController < LogsController private def session_filters - filter_service.session_filters + filter_manager.session_filters end - def filter_service - FilterService.new(current_user:, session:, params:, filter_type: "sales_logs") + def filter_manager + FilterManager.new(current_user:, session:, params:, filter_type: "sales_logs") end def extract_bulk_upload_from_session_filters - filter_service = FilterService.new(current_user:, session:, params:, filter_type: "lettings_logs") - @bulk_upload = filter_service.bulk_upload + filter_manager = FilterManager.new(current_user:, session:, params:, filter_type: "lettings_logs") + @bulk_upload = filter_manager.bulk_upload end def redirect_if_bulk_upload_resolved diff --git a/app/jobs/email_csv_job.rb b/app/jobs/email_csv_job.rb index 63acdbaaa..426c3430e 100644 --- a/app/jobs/email_csv_job.rb +++ b/app/jobs/email_csv_job.rb @@ -9,11 +9,11 @@ class EmailCsvJob < ApplicationJob case log_type when "lettings" unfiltered_logs = organisation.present? && user.support? ? LettingsLog.visible.where(owning_organisation_id: organisation.id) : user.lettings_logs.visible - filtered_logs = FilterService.filter_logs(unfiltered_logs, search_term, filters, all_orgs, user) + filtered_logs = FilterManager.filter_logs(unfiltered_logs, search_term, filters, all_orgs, user) csv_string = filtered_logs.to_csv(user, codes_only_export:) when "sales" unfiltered_logs = organisation.present? && user.support? ? SalesLog.visible.where(owning_organisation_id: organisation.id) : user.sales_logs.visible - filtered_logs = FilterService.filter_logs(unfiltered_logs, search_term, filters, all_orgs, user) + filtered_logs = FilterManager.filter_logs(unfiltered_logs, search_term, filters, all_orgs, user) export_type = codes_only_export ? "codes" : "labels" csv_string = Csv::SalesLogCsvService.new(export_type:).prepare_csv(filtered_logs) end diff --git a/app/services/filter_service.rb b/app/services/filter_manager.rb similarity index 99% rename from app/services/filter_service.rb rename to app/services/filter_manager.rb index f98a5cc34..ce5859e81 100644 --- a/app/services/filter_service.rb +++ b/app/services/filter_manager.rb @@ -1,4 +1,4 @@ -class FilterService +class FilterManager attr_reader :current_user, :session, :params, :filter_type def initialize(current_user:, session:, params:, filter_type:) diff --git a/spec/services/filter_service_spec.rb b/spec/services/filter_manager_spec.rb similarity index 98% rename from spec/services/filter_service_spec.rb rename to spec/services/filter_manager_spec.rb index e1d4652a7..f24ad1cf2 100644 --- a/spec/services/filter_service_spec.rb +++ b/spec/services/filter_manager_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -describe FilterService do +describe FilterManager do describe "filter_by_search" do context "when filtering organisations" do before do