dscf-credit 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d6af7d6aeb34ec3aa7d630f441bdfc54657b07640135bb862cc3d9b0eccd03c9
4
- data.tar.gz: 15b37f5d6cfc2462b31267c16e5d85e738326d1479861abedf127362bfd7d42f
3
+ metadata.gz: 3c8471bd555308d0b88c282f893299234859a46f02ae02c003f02b147115e1ae
4
+ data.tar.gz: 3becd29b404c498ff195e300afa0c313a00155cb20d2ec600f39da1d36e1a45e
5
5
  SHA512:
6
- metadata.gz: 7815d27fc10a061438a37b46a77506a83ef5fab2c08bf5f04fe4b517b52ed7354b0e7a08ba292803a95f79b991a13f1ff8ac966aeb121b2118c40ccfdaa0c493
7
- data.tar.gz: fa2684a66f074ab72be71ed458d717b4fd8e04d920440808ce0b3638b914fc2bf3bcc2fdc80881acb7596e1a3fbd0c70b4d0905b2674c677abbe2838eda713cf
6
+ metadata.gz: c205f203030be0f10872f4dcc1dac30b3ad797abe5a006a071bd579459bd13bf95fb821144d86f96c021e8eb1b7494e1544b6a046eb7b67150484cfeb7910116
7
+ data.tar.gz: 4910b18be7d23f314940a74e70b2cf1e032b8134e50903ed1770283e5a363af87b5986f32d0308799620326fda211c123a735747d4d9eedd240c958153b87d66
@@ -107,41 +107,47 @@ module Dscf::Credit
107
107
  end
108
108
 
109
109
  def extract_parameter_value(parameter)
110
- param_type_name = parameter.scoring_param_type.name
111
110
  parameter_id = parameter.id.to_s
112
111
 
113
- # Get the appropriate JSON field based on parameter type
114
- json_field = get_json_field_for_param_type(param_type_name)
115
- return nil unless json_field
112
+ all_json_fields = {
113
+ user_info: loan_application.user_info || {},
114
+ bank_info: loan_application.bank_info || {},
115
+ facilitator_info: loan_application.facilitator_info || {},
116
+ field_assessment: loan_application.field_assessment || {}
117
+ }
118
+
119
+ param_data = nil
120
+ found_in_field = nil
121
+
122
+ all_json_fields.each do |field_name, field_data|
123
+ if field_data.key?(parameter_id)
124
+ param_data = field_data[parameter_id]
125
+ found_in_field = field_name
126
+ break # Stop at first match (IDs should be unique across fields)
127
+ end
128
+ end
129
+
130
+ if param_data.nil?
131
+ Rails.logger.warn "Parameter #{parameter_id} (#{parameter.name}) not found in any JSON field for loan_app #{loan_application.id}"
132
+ return nil
133
+ end
116
134
 
117
- # Extract value using parameter ID as key
118
- param_data = json_field[parameter_id]
119
- return nil unless param_data.is_a?(Hash)
135
+ unless param_data.is_a?(Hash)
136
+ Rails.logger.warn "Invalid param_data for #{parameter_id} in #{found_in_field}: expected Hash, got #{param_data.class}"
137
+ return nil
138
+ end
120
139
 
121
- # Validate that the param_name matches (optional safety check)
140
+ # Validate param_name matches (optional safety check)
122
141
  expected_param_name = param_data["param_name"]
123
142
  if expected_param_name && expected_param_name != parameter.name
124
- Rails.logger.warn "Parameter name mismatch for ID #{parameter_id}: expected '#{parameter.name}', got '#{expected_param_name}'"
143
+ Rails.logger.warn "Parameter name mismatch for ID #{parameter_id} in #{found_in_field}: expected '#{parameter.name}', got '#{expected_param_name}'"
125
144
  end
126
145
 
127
- param_data["value"]
146
+ raw_value = param_data["value"]
147
+ Rails.logger.debug "Extracted #{parameter.name} (ID #{parameter_id}) from #{found_in_field}: value=#{raw_value}"
148
+ raw_value
128
149
  end
129
150
 
130
- def get_json_field_for_param_type(param_type_name)
131
- case param_type_name.downcase
132
- when "user_info"
133
- loan_application.user_info || {}
134
- when "bank_info"
135
- loan_application.bank_info || {}
136
- when "facilitator_info"
137
- loan_application.facilitator_info || {}
138
- when "field_assessment"
139
- loan_application.field_assessment || {}
140
- else
141
- Rails.logger.warn "Unknown parameter type: #{param_type_name}"
142
- nil
143
- end
144
- end
145
151
 
146
152
  def normalize_parameter_value(parameter, raw_value)
147
153
  return 0.0 if raw_value.nil?
@@ -1,5 +1,5 @@
1
1
  module Dscf
2
2
  module Credit
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dscf-credit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adoniyas
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-10-06 00:00:00.000000000 Z
10
+ date: 2025-10-07 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: dscf-core