From 4d9f86d07312ce2ddb03668292324abb2917878a Mon Sep 17 00:00:00 2001 From: Zach Gollwitzer Date: Fri, 23 May 2025 12:34:32 -0400 Subject: [PATCH] Handle dates in student loan processor correctly --- .../liabilities/student_loan_processor.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/models/plaid_account/liabilities/student_loan_processor.rb b/app/models/plaid_account/liabilities/student_loan_processor.rb index 09970c3a..c3c3b4f2 100644 --- a/app/models/plaid_account/liabilities/student_loan_processor.rb +++ b/app/models/plaid_account/liabilities/student_loan_processor.rb @@ -24,15 +24,24 @@ class PlaidAccount::Liabilities::StudentLoanProcessor def term_months return nil unless origination_date && expected_payoff_date - (expected_payoff_date - origination_date).to_i / 30 + ((expected_payoff_date - origination_date).to_i / 30).to_i end def origination_date - student_loan_data["origination_date"] + parse_date(student_loan_data["origination_date"]) end def expected_payoff_date - student_loan_data["expected_payoff_date"] + parse_date(student_loan_data["expected_payoff_date"]) + end + + def parse_date(value) + return value if value.is_a?(Date) + return nil unless value.present? + + Date.parse(value.to_s) + rescue ArgumentError + nil end def student_loan_data