Module: Opendoor::PartnerSdk::Validators

Defined in:
lib/opendoor/partner_sdk/validators.rb

Class Method Summary collapse

Class Method Details

.blank?(value) ⇒ Boolean

Returns:

  • (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

Raises:



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

Raises:



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

Raises:



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