Sha256: df586c4028ed031c6502fc78c0226e2b815acd612a9c8876662f546fec711d87

Contents?: true

Size: 1.63 KB

Versions: 93

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

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

93 entries across 93 versions & 1 rubygems

Version Path
renalware-core-2.0.109 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.108 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.106 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.105 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.104 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.103 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.102 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.101 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.100 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.99 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.98 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.97 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.96 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.95 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.94 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.93 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.92 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.91 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.90 app/models/renalware/pathology/requests/request_params_factory.rb
renalware-core-2.0.89 app/models/renalware/pathology/requests/request_params_factory.rb