Sha256: 5f6c87d503941be2c6cfa62953c95b5247c58d86608da32e169feb4dcd1ccf97

Contents?: true

Size: 938 Bytes

Versions: 149

Compression:

Stored size: 938 Bytes

Contents

# frozen_string_literal: true

# Works in concert with Patients::SearchQuery and Patients::SearchForm.
# Example usage in a controller:
#
#   my_relation = Thing.all.joins(:patient)
#   filter = Patients::SearchFilter.new(search_term, request)
#   my_relation = patient_filter.call(my_relation)
#   render locals: { search_form: filter.search_form }
require_dependency "renalware/patients"

module Renalware
  module Patients
    class SearchFilter
      attr_reader :search_form

      def initialize(search_term, request)
        @search_form = build_search_form(search_term, request)
      end

      def call(relation)
        matching_patients = Patients::SearchQuery.new(term: search_form.term).call
        relation.merge(matching_patients)
      end

      def build_search_form(search_term, request)
        Patients::SearchForm.new(
          term: search_term,
          url: request.path
        )
      end
    end
  end
end

Version data entries

149 entries across 149 versions & 1 rubygems

Version Path
renalware-core-2.1.1 app/models/renalware/patients/search_filter.rb
renalware-core-2.1.0 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.167 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.166 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.165 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.164 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.163 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.162 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.161 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.160 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.159 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.158 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.157 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.156 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.155 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.153 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.152 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.151 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.149 app/models/renalware/patients/search_filter.rb
renalware-core-2.0.148 app/models/renalware/patients/search_filter.rb