Class: UspsApi::PickupDomesticAddress

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/usps_api/models/pickup_domestic_address.rb

Overview

Address fields for US locations. Combinations of streetAddress with ZIPCode, City/State, or City/State/ZIPCode must be used for a valid pickup response.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(street_address:, street_address_abbreviation: SKIP, secondary_address: SKIP, city_abbreviation: SKIP, city: SKIP, state: SKIP, zip_code: SKIP, zip_plus4: SKIP, urbanization: SKIP, additional_properties: nil) ⇒ PickupDomesticAddress

Returns a new instance of PickupDomesticAddress.



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 92

def initialize(street_address:, street_address_abbreviation: SKIP,
               secondary_address: SKIP, city_abbreviation: SKIP, city: SKIP,
               state: SKIP, zip_code: SKIP, zip_plus4: SKIP,
               urbanization: SKIP, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @street_address = street_address
  unless street_address_abbreviation == SKIP
    @street_address_abbreviation =
      street_address_abbreviation
  end
  @secondary_address = secondary_address unless secondary_address == SKIP
  @city_abbreviation = city_abbreviation unless city_abbreviation == SKIP
  @city = city unless city == SKIP
  @state = state unless state == SKIP
  @zip_code = zip_code unless zip_code == SKIP
  @zip_plus4 = zip_plus4 unless zip_plus4 == SKIP
  @urbanization = urbanization unless urbanization == SKIP
  @additional_properties = additional_properties
end

Instance Attribute Details

#cityString

This is the city name of the address.

Returns:

  • (String)


35
36
37
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 35

def city
  @city
end

#city_abbreviationString

This is the abbreviation of city name for the address.

Returns:

  • (String)


31
32
33
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 31

def city_abbreviation
  @city_abbreviation
end

#secondary_addressString

The secondary unit designator, such as apartment(APT) or suite(STE) number, defining the exact location of the address within a building. For more information please see [Postal Explorer](pe.usps.com/text/pub28/28c2_003.htm).

Returns:

  • (String)


27
28
29
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 27

def secondary_address
  @secondary_address
end

#stateString

This is the state name or two-character state code of the address. The request accepts either the full state name or a two-character state code. The response will always return the two-character state code.

Returns:

  • (String)


41
42
43
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 41

def state
  @state
end

#street_addressString

The number of a building along with the name of the road or street on which it is located.

Returns:

  • (String)


16
17
18
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 16

def street_address
  @street_address
end

#street_address_abbreviationString

This is the abbreviation of street address line for the address.

Returns:

  • (String)


20
21
22
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 20

def street_address_abbreviation
  @street_address_abbreviation
end

#urbanizationString

An area, sector, or residential development within a geographic area (typically used for addresses in Puerto Rico)

Returns:

  • (String)


54
55
56
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 54

def urbanization
  @urbanization
end

#zip_codeString

This is the 5-digit ZIP code.

Returns:

  • (String)


45
46
47
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 45

def zip_code
  @zip_code
end

#zip_plus4String

This is the ZIP+4 extension.

Returns:

  • (String)


49
50
51
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 49

def zip_plus4
  @zip_plus4
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 115

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  street_address = hash.key?('streetAddress') ? hash['streetAddress'] : nil
  street_address_abbreviation =
    hash.key?('streetAddressAbbreviation') ? hash['streetAddressAbbreviation'] : SKIP
  secondary_address =
    hash.key?('secondaryAddress') ? hash['secondaryAddress'] : SKIP
  city_abbreviation =
    hash.key?('cityAbbreviation') ? hash['cityAbbreviation'] : SKIP
  city = hash.key?('city') ? hash['city'] : SKIP
  state = hash.key?('state') ? hash['state'] : SKIP
  zip_code = hash.key?('ZIPCode') ? hash['ZIPCode'] : SKIP
  zip_plus4 = hash.key?('ZIPPlus4') ? hash['ZIPPlus4'] : SKIP
  urbanization = hash.key?('urbanization') ? hash['urbanization'] : SKIP

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  PickupDomesticAddress.new(street_address: street_address,
                            street_address_abbreviation: street_address_abbreviation,
                            secondary_address: secondary_address,
                            city_abbreviation: city_abbreviation,
                            city: city,
                            state: state,
                            zip_code: zip_code,
                            zip_plus4: zip_plus4,
                            urbanization: urbanization,
                            additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 57

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['street_address'] = 'streetAddress'
  @_hash['street_address_abbreviation'] = 'streetAddressAbbreviation'
  @_hash['secondary_address'] = 'secondaryAddress'
  @_hash['city_abbreviation'] = 'cityAbbreviation'
  @_hash['city'] = 'city'
  @_hash['state'] = 'state'
  @_hash['zip_code'] = 'ZIPCode'
  @_hash['zip_plus4'] = 'ZIPPlus4'
  @_hash['urbanization'] = 'urbanization'
  @_hash
end

.nullablesObject

An array for nullable fields



86
87
88
89
90
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 86

def self.nullables
  %w[
    zip_plus4
  ]
end

.optionalsObject

An array for optional fields



72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 72

def self.optionals
  %w[
    street_address_abbreviation
    secondary_address
    city_abbreviation
    city
    state
    zip_code
    zip_plus4
    urbanization
  ]
end

.validate(value) ⇒ Object

Validates an instance of the object from a given value.

Parameters:



154
155
156
157
158
159
160
161
162
163
164
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 154

def self.validate(value)
  if value.instance_of? self
    return APIHelper.valid_type?(value.street_address,
                                 ->(val) { val.instance_of? String })
  end

  return false unless value.instance_of? Hash

  APIHelper.valid_type?(value['streetAddress'],
                        ->(val) { val.instance_of? String })
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



177
178
179
180
181
182
183
184
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 177

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} street_address: #{@street_address.inspect}, street_address_abbreviation:"\
  " #{@street_address_abbreviation.inspect}, secondary_address: #{@secondary_address.inspect},"\
  " city_abbreviation: #{@city_abbreviation.inspect}, city: #{@city.inspect}, state:"\
  " #{@state.inspect}, zip_code: #{@zip_code.inspect}, zip_plus4: #{@zip_plus4.inspect},"\
  " urbanization: #{@urbanization.inspect}, additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



167
168
169
170
171
172
173
174
# File 'lib/usps_api/models/pickup_domestic_address.rb', line 167

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} street_address: #{@street_address}, street_address_abbreviation:"\
  " #{@street_address_abbreviation}, secondary_address: #{@secondary_address},"\
  " city_abbreviation: #{@city_abbreviation}, city: #{@city}, state: #{@state}, zip_code:"\
  " #{@zip_code}, zip_plus4: #{@zip_plus4}, urbanization: #{@urbanization},"\
  " additional_properties: #{@additional_properties}>"
end