Class: Nfe::AddressLookupResponse

Inherits:
Data
  • Object
show all
Defined in:
lib/nfe/resources/dto/addresses/address_lookup_response.rb,
sig/nfe/resources/dto/addresses/address_lookup_response.rbs

Overview

Immutable value object wrapping the addresses returned by a lookup. AddressLookupResponse.from_api is nil-tolerant and accepts BOTH response shapes the API uses: the list shape (+{ "addresses" => [...] }+, e.g. term/$filter search) and the single-result shape the postal-code lookup actually returns (+{ "address" => ... }+) — the latter is normalized into a one-element addresses list, so callers always read response.addresses.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAddressLookupResponse

Returns a new instance of AddressLookupResponse.

Parameters:



38
# File 'sig/nfe/resources/dto/addresses/address_lookup_response.rbs', line 38

def initialize: (addresses: Array[Nfe::Address?]) -> void

Instance Attribute Details

#addressesArray[Nfe::Address?] (readonly)

Returns the value of attribute addresses.

Returns:



32
33
34
# File 'sig/nfe/resources/dto/addresses/address_lookup_response.rbs', line 32

def addresses
  @addresses
end

Class Method Details

.from_api(payload) ⇒ Nfe::AddressLookupResponse?

Returns nil when payload is nil.

Parameters:

  • payload (Hash, nil)

    the parsed lookup response body.

Returns:



70
71
72
73
74
75
# File 'lib/nfe/resources/dto/addresses/address_lookup_response.rb', line 70

def self.from_api(payload)
  return nil if payload.nil?

  raw = payload["addresses"] || [payload["address"]].compact
  new(addresses: raw.map { |item| Nfe::Address.from_api(item) })
end

.newinstance

Parameters:

Returns:

  • (instance)


36
# File 'sig/nfe/resources/dto/addresses/address_lookup_response.rbs', line 36

def self.new: (addresses: Array[Nfe::Address?]) -> instance