Class: Dscf::Credit::RiskApplicationService
- Inherits:
-
Object
- Object
- Dscf::Credit::RiskApplicationService
- Defined in:
- app/services/dscf/credit/risk_application_service.rb
Instance Attribute Summary collapse
-
#eligible_credit_line ⇒ Object
readonly
Returns the value of attribute eligible_credit_line.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#risk_factor ⇒ Object
readonly
Returns the value of attribute risk_factor.
Instance Method Summary collapse
- #apply_risk ⇒ Object
-
#initialize(eligible_credit_line, risk_factor) ⇒ RiskApplicationService
constructor
A new instance of RiskApplicationService.
Constructor Details
#initialize(eligible_credit_line, risk_factor) ⇒ RiskApplicationService
Returns a new instance of RiskApplicationService.
5 6 7 8 9 |
# File 'app/services/dscf/credit/risk_application_service.rb', line 5 def initialize(eligible_credit_line, risk_factor) @eligible_credit_line = eligible_credit_line @risk_factor = risk_factor.nil? ? nil : risk_factor.to_f @errors = [] end |
Instance Attribute Details
#eligible_credit_line ⇒ Object (readonly)
Returns the value of attribute eligible_credit_line.
3 4 5 |
# File 'app/services/dscf/credit/risk_application_service.rb', line 3 def eligible_credit_line @eligible_credit_line end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
3 4 5 |
# File 'app/services/dscf/credit/risk_application_service.rb', line 3 def errors @errors end |
#risk_factor ⇒ Object (readonly)
Returns the value of attribute risk_factor.
3 4 5 |
# File 'app/services/dscf/credit/risk_application_service.rb', line 3 def risk_factor @risk_factor end |
Instance Method Details
#apply_risk ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/services/dscf/credit/risk_application_service.rb', line 11 def apply_risk return error_result("Eligible credit line is required") unless eligible_credit_line return error_result("Risk factor is required") if risk_factor.nil? return error_result("Risk factor must be between 0.0 and 0.9") unless valid_risk_factor? begin ActiveRecord::Base.transaction do eligible_credit_line.risk = risk_factor new_available_limit = calculate_available_limit_with_risk eligible_credit_line.available_limit = new_available_limit eligible_credit_line.save! update_loan_profile_total_limit success_result(eligible_credit_line, "Risk factor applied successfully") end rescue StandardError => e Rails.logger.error "Risk application failed: #{e.}" Rails.logger.error e.backtrace.join("\n") error_result("Failed to apply risk factor: #{e.}") end end |