Sha256: d72934a299b71585fb86ef42b64411c3082dcd4c0334157100267018351411d9

Contents?: true

Size: 1.6 KB

Versions: 20

Compression:

Stored size: 1.6 KB

Contents

require_dependency "renalware/pathology"

module Renalware
  module Pathology
    module Requests
      class RequestParamsFactory
        def initialize(params)
          @params = params
        end

        def build
          {
            clinic: clinic,
            consultant: consultant,
            telephone: telephone,
            template: template,
            by: @params[:by]
          }
        end

        private

        def clinic
          @clinic ||= requested_clinic || default_clinic
        end

        def consultant
          @consultant ||= requested_consultant || default_consultant
        end

        def telephone
          @telephone ||= requested_telephone || default_telephone
        end

        def template
          requested_template || default_template
        end

        def requested_clinic
          return if @params[:clinic_id].blank?

          Renalware::Clinics::Clinic.find(@params[:clinic_id])
        end

        def default_clinic
          Renalware::Clinics::Clinic.ordered.first
        end

        def requested_consultant
          return if @params[:consultant_id].blank?

          Renalware::Pathology::Consultant.find(@params[:consultant_id])
        end

        def default_consultant
          Renalware::Pathology::Consultant.ordered.first
        end

        def requested_telephone
          @params[:telephone]
        end

        def default_telephone
          consultant.telephone
        end

        def requested_template
          @params[:template]
        end

        def default_template
          "crs"
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
renalware-core-2.0.8 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.7 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.5 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.4 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.3 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.2 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.1 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc13 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc11 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc10 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc9 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc8 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc7 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc6 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc5 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc4 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc3 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.rc1 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta12 app/models/renalware/pathology/requests/request_params_factory.rb