1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-08-02 20:15:22 +02:00

Allow inline account creation when importing CSV (#1291)

* Allow inline account creation when importing CSV

* Sanitize numeric inputs for CSV

* CSV import date validation

* Lint fix
This commit is contained in:
Zach Gollwitzer 2024-10-10 15:14:38 -04:00 committed by GitHub
parent 1746533842
commit cd9f20747c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 44 additions and 10 deletions

View file

@ -4,7 +4,7 @@ class Import::Row < ApplicationRecord
validates :amount, numericality: true, allow_blank: true
validates :currency, presence: true
validate :date_matches_user_format
validate :date_valid
validate :required_columns
validate :currency_is_valid
@ -54,13 +54,21 @@ class Import::Row < ApplicationRecord
end
end
def date_matches_user_format
def date_valid
return if date.blank?
parsed_date = Date.strptime(date, import.date_format) rescue nil
if parsed_date.nil?
errors.add(:date, "must exactly match the format: #{import.date_format}")
return
end
min_date = Account::Entry.min_supported_date
max_date = Date.current
if parsed_date < min_date || parsed_date > max_date
errors.add(:date, "must be between #{min_date} and #{max_date}")
end
end