Class: PostcodeValidation::UseCase::ValidateAddress
- Inherits:
-
Object
- Object
- PostcodeValidation::UseCase::ValidateAddress
- Defined in:
- lib/postcode_validation/use_case/validate_address.rb,
lib/postcode_validation/use_case/validate_address/format_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/regex_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/be_postcode_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/fr_postcode_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/gb_postcode_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/nl_postcode_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/sg_postcode_validator.rb,
lib/postcode_validation/use_case/validate_address/format_validators/no_op_postcode_validator.rb
Defined Under Namespace
Modules: FormatValidators Classes: FormatValidator
Instance Method Summary collapse
- #execute(postcode:, country:) ⇒ Object
-
#initialize(address_match_gateway:, logger: nil) ⇒ ValidateAddress
constructor
A new instance of ValidateAddress.
Constructor Details
#initialize(address_match_gateway:, logger: nil) ⇒ ValidateAddress
Returns a new instance of ValidateAddress.
6 7 8 9 10 11 |
# File 'lib/postcode_validation/use_case/validate_address.rb', line 6 def initialize(address_match_gateway:, logger: nil) @format_validator = FormatValidator.new @address_match_gateway = address_match_gateway @logger = logger @errors = [] end |
Instance Method Details
#execute(postcode:, country:) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/postcode_validation/use_case/validate_address.rb', line 13 def execute(postcode:, country:) check_country(country) if country == 'SG' check_postcode_format(postcode_without_spaces(postcode), country) if @errors.empty? return { valid?: true, reason: ['valid_postcode'] } end end check_postcode_format(postcode, country) result = matched_addresses(postcode, country) check_matched_addresses(result) result_payload(result, postcode) rescue PostcodeValidation::Error::RequestError => e gracefully_handle_error(e) end |