Class: SimpleFormsApiSubmission::MetadataValidator
- Inherits:
-
Object
- Object
- SimpleFormsApiSubmission::MetadataValidator
- Defined in:
- lib/simple_forms_api_submission/metadata_validator.rb
Class Method Summary collapse
- .validate(metadata) ⇒ Object
- .validate_doc_type(metadata) ⇒ Object
- .validate_file_number(metadata) ⇒ Object
- .validate_first_name(metadata) ⇒ Object
- .validate_last_name(metadata) ⇒ Object
- .validate_presence_and_stringiness(value, error_label) ⇒ Object
- .validate_source(metadata) ⇒ Object
- .validate_zip_code(metadata) ⇒ Object
Class Method Details
.validate(metadata) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 5 def self.validate() validate_first_name() .then { |m| validate_last_name(m) } .then { |m| validate_file_number(m) } .then { |m| validate_zip_code(m) } .then { |m| validate_source(m) } .then { |m| validate_doc_type(m) } end |
.validate_doc_type(metadata) ⇒ Object
52 53 54 55 56 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 52 def self.validate_doc_type() validate_presence_and_stringiness(['docType'], 'doc type') end |
.validate_file_number(metadata) ⇒ Object
30 31 32 33 34 35 36 37 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 30 def self.validate_file_number() validate_presence_and_stringiness(['fileNumber'], 'file number') unless ['fileNumber'].match?(/^\d{8,9}$/) raise ArgumentError, 'file number is invalid. It must be 8 or 9 digits' end end |
.validate_first_name(metadata) ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 14 def self.validate_first_name() validate_presence_and_stringiness(['veteranFirstName'], 'veteran first name') ['veteranFirstName'] = I18n.transliterate(['veteranFirstName']).gsub(/[^a-zA-Z\-\s]/, '').strip.first(50) end |
.validate_last_name(metadata) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 22 def self.validate_last_name() validate_presence_and_stringiness(['veteranLastName'], 'veteran last name') ['veteranLastName'] = I18n.transliterate(['veteranLastName']).gsub(/[^a-zA-Z\-\s]/, '').strip.first(50) end |
.validate_presence_and_stringiness(value, error_label) ⇒ Object
58 59 60 61 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 58 def self.validate_presence_and_stringiness(value, error_label) raise ArgumentError, "#{error_label} is missing" unless value raise ArgumentError, "#{error_label} is not a string" if value.class != String end |
.validate_source(metadata) ⇒ Object
46 47 48 49 50 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 46 def self.validate_source() validate_presence_and_stringiness(['source'], 'source') end |
.validate_zip_code(metadata) ⇒ Object
39 40 41 42 43 44 |
# File 'lib/simple_forms_api_submission/metadata_validator.rb', line 39 def self.validate_zip_code() validate_presence_and_stringiness(['zipCode'], 'zip code') ['zipCode'] = '00000' unless ['zipCode'].match?(/\A\d{5}(-\d{4})?\z/) end |