Browse Source

refactor: initalize filter_type

pull/1675/head
natdeanlewissoftwire 3 years ago
parent
commit
a73a1662bf
  1. 6
      app/controllers/lettings_logs_controller.rb
  2. 6
      app/controllers/organisations_controller.rb
  3. 6
      app/controllers/sales_logs_controller.rb
  4. 19
      app/models/filter_manager.rb

6
app/controllers/lettings_logs_controller.rb

@ -115,15 +115,15 @@ class LettingsLogsController < LogsController
private
def set_session_filters
filter_manager.serialize_filters_to_session("lettings_logs")
filter_manager.serialize_filters_to_session
end
def session_filters
filter_manager.session_filters("lettings_logs")
filter_manager.session_filters
end
def filter_manager
FilterManager.new(current_user:, session:, params:)
FilterManager.new(current_user:, session:, params:, filter_type: "lettings_logs")
end
def org_params

6
app/controllers/organisations_controller.rb

@ -167,15 +167,15 @@ private
end
def set_session_filters
filter_manager.serialize_filters_to_session(filter_type, specific_org: true)
filter_manager.serialize_filters_to_session(specific_org: true)
end
def session_filters
filter_manager.session_filters(filter_type, specific_org: true)
filter_manager.session_filters(specific_org: true)
end
def filter_manager
FilterManager.new(current_user:, session:, params:)
FilterManager.new(current_user:, session:, params:, filter_type: )
end
def org_params

6
app/controllers/sales_logs_controller.rb

@ -82,15 +82,15 @@ class SalesLogsController < LogsController
private
def set_session_filters
filter_manager.serialize_filters_to_session("sales_logs")
filter_manager.serialize_filters_to_session
end
def session_filters
filter_manager.session_filters("sales_logs")
filter_manager.session_filters
end
def filter_manager
FilterManager.new(current_user:, session:, params:)
FilterManager.new(current_user:, session:, params:, filter_type: "sales_logs")
end
def extract_bulk_upload_from_session_filters

19
app/models/filter_manager.rb

@ -1,24 +1,25 @@
class FilterManager
attr_reader :current_user, :session, :params
attr_reader :current_user, :session, :params, :filter_type
def initialize(current_user:, session:, params:)
def initialize(current_user:, session:, params:, filter_type:)
@current_user = current_user
@session = session
@params = params
@filter_type = filter_type
end
def serialize_filters_to_session(filter_type, specific_org: false)
session["#{filter_type}_filters"] = session_filters(filter_type, specific_org:).to_json
def serialize_filters_to_session(specific_org: false)
session["#{@filter_type}_filters"] = session_filters(specific_org:).to_json
end
def session_filters(filter_type, specific_org: false)
@session_filters ||= deserialize_filters_from_session(filter_type, specific_org)
def session_filters(specific_org: false)
@session_filters ||= deserialize_filters_from_session(specific_org)
end
def deserialize_filters_from_session(filter_type, specific_org)
current_filters = session["#{filter_type}_filters"]
def deserialize_filters_from_session(specific_org)
current_filters = session["#{@filter_type}_filters"]
new_filters = current_filters.present? ? JSON.parse(current_filters) : {}
if filter_type.include?("logs")
if @filter_type.include?("logs")
current_user.logs_filters(specific_org:).each do |filter|
new_filters[filter] = params[filter] if params[filter].present?
end

Loading…
Cancel
Save