Sha256: 7394dba7fbd71ec453bb0647b4318b764cfcaa3be132416f2b08d14084c6c3f3

Contents?: true

Size: 1.61 KB

Versions: 8

Compression:

Stored size: 1.61 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 unless @params[:clinic_id].present?

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

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

        def requested_consultant
          return unless @params[:consultant_id].present?

          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

8 entries across 8 versions & 1 rubygems

Version Path
renalware-core-2.0.0.pre.beta11 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta10 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta9 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta8 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta7 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta6 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta5 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.0.pre.beta4 app/models/renalware/pathology/requests/request_params_factory.rb