Module: Opendoor::PartnerSdk::Validators
- Defined in:
- lib/opendoor/partner_sdk/validators.rb
Class Method Summary collapse
- .blank?(value) ⇒ Boolean
- .get(hash, *keys) ⇒ Object
- .validate_address(address) ⇒ Object
- .validate_create_offer_request(data) ⇒ Object
- .validate_update_offer_request(offer_id, data) ⇒ Object
Class Method Details
.blank?(value) ⇒ Boolean
36 37 38 |
# File 'lib/opendoor/partner_sdk/validators.rb', line 36 def blank?(value) value.nil? || value.to_s.strip.empty? end |
.get(hash, *keys) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/opendoor/partner_sdk/validators.rb', line 40 def get(hash, *keys) return nil unless hash.is_a?(Hash) keys.each do |key| [key, key.to_s].uniq.each do |k| next unless hash.key?(k) v = hash[k] return v unless v.nil? end end nil end |
.validate_address(address) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/opendoor/partner_sdk/validators.rb', line 6 def validate_address(address) raise ValidationError.new("street1 is required", "address.street1") if blank?(get(address, :street1)) raise ValidationError.new("city is required", "address.city") if blank?(get(address, :city)) raise ValidationError.new("state is required", "address.state") if blank?(get(address, :state)) raise ValidationError.new("postalCode is required", "address.postalCode") if blank?(get(address, :postal_code, :postalCode)) end |
.validate_create_offer_request(data) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/opendoor/partner_sdk/validators.rb', line 13 def validate_create_offer_request(data) unless data.is_a?(Hash) raise ValidationError.new("create data must be a Hash", "data") end address = get(data, :address) raise ValidationError.new("address is required", "address") if address.nil? raise ValidationError.new("address must be a Hash", "address") unless address.is_a?(Hash) validate_address(address) end |
.validate_update_offer_request(offer_id, data) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/opendoor/partner_sdk/validators.rb', line 25 def validate_update_offer_request(offer_id, data) raise ValidationError.new("offerId is required", "offerId") if blank?(offer_id) unless data.is_a?(Hash) raise ValidationError.new("update data must be a Hash", "data") end raise ValidationError.new( "At least one OfferInput field must be provided", "offerInput" ) if data.empty? end |