noths 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +69 -0
  4. data/README.md +149 -0
  5. data/Rakefile +8 -0
  6. data/bin/generate_gem +18 -0
  7. data/bin/refresh_schemas +94 -0
  8. data/docs/AcceptanceBulkModel.md +11 -0
  9. data/docs/Currency.md +11 -0
  10. data/docs/DeclineBulkModel.md +9 -0
  11. data/docs/DeliveryAddress.md +13 -0
  12. data/docs/DeliveryService.md +9 -0
  13. data/docs/DeliveryZone.md +9 -0
  14. data/docs/DispatchBulkModel.md +12 -0
  15. data/docs/DispatchNotesBulkModel.md +8 -0
  16. data/docs/Enquiry.md +10 -0
  17. data/docs/EnquiryMessage.md +8 -0
  18. data/docs/Error.md +9 -0
  19. data/docs/Financials.md +25 -0
  20. data/docs/FinancialsDetails.md +10 -0
  21. data/docs/ImageUrl.md +13 -0
  22. data/docs/Item.md +15 -0
  23. data/docs/ItemFinancials.md +13 -0
  24. data/docs/Link.md +10 -0
  25. data/docs/ManualPayment.md +11 -0
  26. data/docs/Money.md +9 -0
  27. data/docs/Order.md +53 -0
  28. data/docs/OrderDetail.md +9 -0
  29. data/docs/OrderDetailsBulkModel.md +8 -0
  30. data/docs/OrderIndex.md +10 -0
  31. data/docs/OrderRefund.md +8 -0
  32. data/docs/OrdersApi.md +796 -0
  33. data/docs/Product.md +12 -0
  34. data/docs/ProductOption.md +9 -0
  35. data/docs/RefundResponse.md +10 -0
  36. data/docs/RefundsApi.md +69 -0
  37. data/docs/SearchResultMeta.md +9 -0
  38. data/docs/User.md +10 -0
  39. data/lib/noths.rb +70 -0
  40. data/lib/noths/api/orders_api.rb +819 -0
  41. data/lib/noths/api/refunds_api.rb +88 -0
  42. data/lib/noths/api_client.rb +389 -0
  43. data/lib/noths/api_error.rb +38 -0
  44. data/lib/noths/configuration.rb +209 -0
  45. data/lib/noths/models/acceptance_bulk_model.rb +233 -0
  46. data/lib/noths/models/currency.rb +235 -0
  47. data/lib/noths/models/decline_bulk_model.rb +208 -0
  48. data/lib/noths/models/delivery_address.rb +263 -0
  49. data/lib/noths/models/delivery_service.rb +207 -0
  50. data/lib/noths/models/delivery_zone.rb +207 -0
  51. data/lib/noths/models/dispatch_bulk_model.rb +236 -0
  52. data/lib/noths/models/dispatch_notes_bulk_model.rb +194 -0
  53. data/lib/noths/models/enquiry.rb +223 -0
  54. data/lib/noths/models/enquiry_message.rb +193 -0
  55. data/lib/noths/models/error.rb +207 -0
  56. data/lib/noths/models/financials.rb +433 -0
  57. data/lib/noths/models/financials_details.rb +221 -0
  58. data/lib/noths/models/image_url.rb +263 -0
  59. data/lib/noths/models/item.rb +293 -0
  60. data/lib/noths/models/item_financials.rb +263 -0
  61. data/lib/noths/models/link.rb +222 -0
  62. data/lib/noths/models/manual_payment.rb +235 -0
  63. data/lib/noths/models/money.rb +207 -0
  64. data/lib/noths/models/order.rb +812 -0
  65. data/lib/noths/models/order_detail.rb +207 -0
  66. data/lib/noths/models/order_details_bulk_model.rb +194 -0
  67. data/lib/noths/models/order_index.rb +225 -0
  68. data/lib/noths/models/order_refund.rb +193 -0
  69. data/lib/noths/models/product.rb +249 -0
  70. data/lib/noths/models/product_option.rb +207 -0
  71. data/lib/noths/models/refund_response.rb +223 -0
  72. data/lib/noths/models/search_result_meta.rb +207 -0
  73. data/lib/noths/models/user.rb +221 -0
  74. data/lib/noths/version.rb +15 -0
  75. data/noths.gemspec +45 -0
  76. data/schemas/api-docs.json +26 -0
  77. data/schemas/orders.json +2013 -0
  78. data/schemas/refunds.json +128 -0
  79. data/spec/api/orders_api_spec.rb +239 -0
  80. data/spec/api/refunds_api_spec.rb +50 -0
  81. data/spec/api_client_spec.rb +226 -0
  82. data/spec/configuration_spec.rb +42 -0
  83. data/spec/models/acceptance_bulk_model_spec.rb +60 -0
  84. data/spec/models/currency_spec.rb +60 -0
  85. data/spec/models/decline_bulk_model_spec.rb +48 -0
  86. data/spec/models/delivery_address_spec.rb +72 -0
  87. data/spec/models/delivery_service_spec.rb +48 -0
  88. data/spec/models/delivery_zone_spec.rb +48 -0
  89. data/spec/models/dispatch_bulk_model_spec.rb +66 -0
  90. data/spec/models/dispatch_notes_bulk_model_spec.rb +42 -0
  91. data/spec/models/enquiry_message_spec.rb +42 -0
  92. data/spec/models/enquiry_spec.rb +54 -0
  93. data/spec/models/error_spec.rb +48 -0
  94. data/spec/models/financials_details_spec.rb +54 -0
  95. data/spec/models/financials_spec.rb +144 -0
  96. data/spec/models/image_url_spec.rb +72 -0
  97. data/spec/models/item_financials_spec.rb +72 -0
  98. data/spec/models/item_spec.rb +84 -0
  99. data/spec/models/link_spec.rb +54 -0
  100. data/spec/models/manual_payment_spec.rb +60 -0
  101. data/spec/models/money_spec.rb +48 -0
  102. data/spec/models/order_detail_spec.rb +48 -0
  103. data/spec/models/order_details_bulk_model_spec.rb +42 -0
  104. data/spec/models/order_index_spec.rb +54 -0
  105. data/spec/models/order_refund_spec.rb +42 -0
  106. data/spec/models/order_spec.rb +312 -0
  107. data/spec/models/product_option_spec.rb +48 -0
  108. data/spec/models/product_spec.rb +66 -0
  109. data/spec/models/refund_response_spec.rb +54 -0
  110. data/spec/models/search_result_meta_spec.rb +48 -0
  111. data/spec/models/user_spec.rb +54 -0
  112. data/spec/spec_helper.rb +111 -0
  113. data/swagger_config.json +16 -0
  114. metadata +370 -0
@@ -0,0 +1,235 @@
1
+ =begin
2
+ #Noths
3
+
4
+ #www.notonthehighstreet.com API client
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Noths
16
+
17
+ class Currency
18
+ attr_accessor :subunit_to_unit
19
+
20
+ attr_accessor :symbol
21
+
22
+ attr_accessor :html_entity
23
+
24
+ attr_accessor :iso_code
25
+
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ def self.attribute_map
29
+ {
30
+ :'subunit_to_unit' => :'subunit_to_unit',
31
+ :'symbol' => :'symbol',
32
+ :'html_entity' => :'html_entity',
33
+ :'iso_code' => :'iso_code'
34
+ }
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.swagger_types
39
+ {
40
+ :'subunit_to_unit' => :'Integer',
41
+ :'symbol' => :'String',
42
+ :'html_entity' => :'String',
43
+ :'iso_code' => :'String'
44
+ }
45
+ end
46
+
47
+ # Initializes the object
48
+ # @param [Hash] attributes Model attributes in the form of hash
49
+ def initialize(attributes = {})
50
+ return unless attributes.is_a?(Hash)
51
+
52
+ # convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
54
+
55
+ if attributes.has_key?(:'subunit_to_unit')
56
+ self.subunit_to_unit = attributes[:'subunit_to_unit']
57
+ end
58
+
59
+ if attributes.has_key?(:'symbol')
60
+ self.symbol = attributes[:'symbol']
61
+ end
62
+
63
+ if attributes.has_key?(:'html_entity')
64
+ self.html_entity = attributes[:'html_entity']
65
+ end
66
+
67
+ if attributes.has_key?(:'iso_code')
68
+ self.iso_code = attributes[:'iso_code']
69
+ end
70
+
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ invalid_properties = Array.new
77
+ if @subunit_to_unit.nil?
78
+ invalid_properties.push("invalid value for 'subunit_to_unit', subunit_to_unit cannot be nil.")
79
+ end
80
+
81
+ if @symbol.nil?
82
+ invalid_properties.push("invalid value for 'symbol', symbol cannot be nil.")
83
+ end
84
+
85
+ if @html_entity.nil?
86
+ invalid_properties.push("invalid value for 'html_entity', html_entity cannot be nil.")
87
+ end
88
+
89
+ if @iso_code.nil?
90
+ invalid_properties.push("invalid value for 'iso_code', iso_code cannot be nil.")
91
+ end
92
+
93
+ return invalid_properties
94
+ end
95
+
96
+ # Check to see if the all the properties in the model are valid
97
+ # @return true if the model is valid
98
+ def valid?
99
+ return false if @subunit_to_unit.nil?
100
+ return false if @symbol.nil?
101
+ return false if @html_entity.nil?
102
+ return false if @iso_code.nil?
103
+ return true
104
+ end
105
+
106
+ # Checks equality by comparing each attribute.
107
+ # @param [Object] Object to be compared
108
+ def ==(o)
109
+ return true if self.equal?(o)
110
+ self.class == o.class &&
111
+ subunit_to_unit == o.subunit_to_unit &&
112
+ symbol == o.symbol &&
113
+ html_entity == o.html_entity &&
114
+ iso_code == o.iso_code
115
+ end
116
+
117
+ # @see the `==` method
118
+ # @param [Object] Object to be compared
119
+ def eql?(o)
120
+ self == o
121
+ end
122
+
123
+ # Calculates hash code according to all attributes.
124
+ # @return [Fixnum] Hash code
125
+ def hash
126
+ [subunit_to_unit, symbol, html_entity, iso_code].hash
127
+ end
128
+
129
+ # Builds the object from hash
130
+ # @param [Hash] attributes Model attributes in the form of hash
131
+ # @return [Object] Returns the model itself
132
+ def build_from_hash(attributes)
133
+ return nil unless attributes.is_a?(Hash)
134
+ self.class.swagger_types.each_pair do |key, type|
135
+ if type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
139
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
140
+ end
141
+ elsif !attributes[self.class.attribute_map[key]].nil?
142
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
143
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
144
+ end
145
+
146
+ self
147
+ end
148
+
149
+ # Deserializes the data based on type
150
+ # @param string type Data type
151
+ # @param string value Value to be deserialized
152
+ # @return [Object] Deserialized data
153
+ def _deserialize(type, value)
154
+ case type.to_sym
155
+ when :DateTime
156
+ DateTime.parse(value)
157
+ when :Date
158
+ Date.parse(value)
159
+ when :String
160
+ value.to_s
161
+ when :Integer
162
+ value.to_i
163
+ when :Float
164
+ value.to_f
165
+ when :BOOLEAN
166
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
167
+ true
168
+ else
169
+ false
170
+ end
171
+ when :Object
172
+ # generic object (usually a Hash), return directly
173
+ value
174
+ when /\AArray<(?<inner_type>.+)>\z/
175
+ inner_type = Regexp.last_match[:inner_type]
176
+ value.map { |v| _deserialize(inner_type, v) }
177
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
178
+ k_type = Regexp.last_match[:k_type]
179
+ v_type = Regexp.last_match[:v_type]
180
+ {}.tap do |hash|
181
+ value.each do |k, v|
182
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
183
+ end
184
+ end
185
+ else # model
186
+ temp_model = Noths.const_get(type).new
187
+ temp_model.build_from_hash(value)
188
+ end
189
+ end
190
+
191
+ # Returns the string representation of the object
192
+ # @return [String] String presentation of the object
193
+ def to_s
194
+ to_hash.to_s
195
+ end
196
+
197
+ # to_body is an alias to to_hash (backward compatibility)
198
+ # @return [Hash] Returns the object in the form of hash
199
+ def to_body
200
+ to_hash
201
+ end
202
+
203
+ # Returns the object in the form of hash
204
+ # @return [Hash] Returns the object in the form of hash
205
+ def to_hash
206
+ hash = {}
207
+ self.class.attribute_map.each_pair do |attr, param|
208
+ value = self.send(attr)
209
+ next if value.nil?
210
+ hash[param] = _to_hash(value)
211
+ end
212
+ hash
213
+ end
214
+
215
+ # Outputs non-array value in the form of hash
216
+ # For object, use to_hash. Otherwise, just return the value
217
+ # @param [Object] value Any valid value
218
+ # @return [Hash] Returns the value in the form of hash
219
+ def _to_hash(value)
220
+ if value.is_a?(Array)
221
+ value.compact.map{ |v| _to_hash(v) }
222
+ elsif value.is_a?(Hash)
223
+ {}.tap do |hash|
224
+ value.each { |k, v| hash[k] = _to_hash(v) }
225
+ end
226
+ elsif value.respond_to? :to_hash
227
+ value.to_hash
228
+ else
229
+ value
230
+ end
231
+ end
232
+
233
+ end
234
+
235
+ end
@@ -0,0 +1,208 @@
1
+ =begin
2
+ #Noths
3
+
4
+ #www.notonthehighstreet.com API client
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Noths
16
+
17
+ class DeclineBulkModel
18
+ # Order Id
19
+ attr_accessor :id
20
+
21
+ attr_accessor :decline_reason
22
+
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'id' => :'id',
28
+ :'decline_reason' => :'decline_reason'
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.swagger_types
34
+ {
35
+ :'id' => :'Integer',
36
+ :'decline_reason' => :'String'
37
+ }
38
+ end
39
+
40
+ # Initializes the object
41
+ # @param [Hash] attributes Model attributes in the form of hash
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
47
+
48
+ if attributes.has_key?(:'id')
49
+ self.id = attributes[:'id']
50
+ end
51
+
52
+ if attributes.has_key?(:'decline_reason')
53
+ self.decline_reason = attributes[:'decline_reason']
54
+ end
55
+
56
+ end
57
+
58
+ # Show invalid properties with the reasons. Usually used together with valid?
59
+ # @return Array for valid properties with the reasons
60
+ def list_invalid_properties
61
+ invalid_properties = Array.new
62
+ if @id.nil?
63
+ invalid_properties.push("invalid value for 'id', id cannot be nil.")
64
+ end
65
+
66
+ if @decline_reason.nil?
67
+ invalid_properties.push("invalid value for 'decline_reason', decline_reason cannot be nil.")
68
+ end
69
+
70
+ return invalid_properties
71
+ end
72
+
73
+ # Check to see if the all the properties in the model are valid
74
+ # @return true if the model is valid
75
+ def valid?
76
+ return false if @id.nil?
77
+ return false if @decline_reason.nil?
78
+ return true
79
+ end
80
+
81
+ # Checks equality by comparing each attribute.
82
+ # @param [Object] Object to be compared
83
+ def ==(o)
84
+ return true if self.equal?(o)
85
+ self.class == o.class &&
86
+ id == o.id &&
87
+ decline_reason == o.decline_reason
88
+ end
89
+
90
+ # @see the `==` method
91
+ # @param [Object] Object to be compared
92
+ def eql?(o)
93
+ self == o
94
+ end
95
+
96
+ # Calculates hash code according to all attributes.
97
+ # @return [Fixnum] Hash code
98
+ def hash
99
+ [id, decline_reason].hash
100
+ end
101
+
102
+ # Builds the object from hash
103
+ # @param [Hash] attributes Model attributes in the form of hash
104
+ # @return [Object] Returns the model itself
105
+ def build_from_hash(attributes)
106
+ return nil unless attributes.is_a?(Hash)
107
+ self.class.swagger_types.each_pair do |key, type|
108
+ if type =~ /\AArray<(.*)>/i
109
+ # check to ensure the input is an array given that the the attribute
110
+ # is documented as an array but the input is not
111
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
112
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
113
+ end
114
+ elsif !attributes[self.class.attribute_map[key]].nil?
115
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
116
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
117
+ end
118
+
119
+ self
120
+ end
121
+
122
+ # Deserializes the data based on type
123
+ # @param string type Data type
124
+ # @param string value Value to be deserialized
125
+ # @return [Object] Deserialized data
126
+ def _deserialize(type, value)
127
+ case type.to_sym
128
+ when :DateTime
129
+ DateTime.parse(value)
130
+ when :Date
131
+ Date.parse(value)
132
+ when :String
133
+ value.to_s
134
+ when :Integer
135
+ value.to_i
136
+ when :Float
137
+ value.to_f
138
+ when :BOOLEAN
139
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
140
+ true
141
+ else
142
+ false
143
+ end
144
+ when :Object
145
+ # generic object (usually a Hash), return directly
146
+ value
147
+ when /\AArray<(?<inner_type>.+)>\z/
148
+ inner_type = Regexp.last_match[:inner_type]
149
+ value.map { |v| _deserialize(inner_type, v) }
150
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
151
+ k_type = Regexp.last_match[:k_type]
152
+ v_type = Regexp.last_match[:v_type]
153
+ {}.tap do |hash|
154
+ value.each do |k, v|
155
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
156
+ end
157
+ end
158
+ else # model
159
+ temp_model = Noths.const_get(type).new
160
+ temp_model.build_from_hash(value)
161
+ end
162
+ end
163
+
164
+ # Returns the string representation of the object
165
+ # @return [String] String presentation of the object
166
+ def to_s
167
+ to_hash.to_s
168
+ end
169
+
170
+ # to_body is an alias to to_hash (backward compatibility)
171
+ # @return [Hash] Returns the object in the form of hash
172
+ def to_body
173
+ to_hash
174
+ end
175
+
176
+ # Returns the object in the form of hash
177
+ # @return [Hash] Returns the object in the form of hash
178
+ def to_hash
179
+ hash = {}
180
+ self.class.attribute_map.each_pair do |attr, param|
181
+ value = self.send(attr)
182
+ next if value.nil?
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ # Outputs non-array value in the form of hash
189
+ # For object, use to_hash. Otherwise, just return the value
190
+ # @param [Object] value Any valid value
191
+ # @return [Hash] Returns the value in the form of hash
192
+ def _to_hash(value)
193
+ if value.is_a?(Array)
194
+ value.compact.map{ |v| _to_hash(v) }
195
+ elsif value.is_a?(Hash)
196
+ {}.tap do |hash|
197
+ value.each { |k, v| hash[k] = _to_hash(v) }
198
+ end
199
+ elsif value.respond_to? :to_hash
200
+ value.to_hash
201
+ else
202
+ value
203
+ end
204
+ end
205
+
206
+ end
207
+
208
+ end
@@ -0,0 +1,263 @@
1
+ =begin
2
+ #Noths
3
+
4
+ #www.notonthehighstreet.com API client
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module Noths
16
+
17
+ class DeliveryAddress
18
+ attr_accessor :address1
19
+
20
+ attr_accessor :address2
21
+
22
+ attr_accessor :town
23
+
24
+ attr_accessor :post_code
25
+
26
+ attr_accessor :country
27
+
28
+ attr_accessor :county
29
+
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+ :'address1' => :'address1',
35
+ :'address2' => :'address2',
36
+ :'town' => :'town',
37
+ :'post_code' => :'post_code',
38
+ :'country' => :'country',
39
+ :'county' => :'county'
40
+ }
41
+ end
42
+
43
+ # Attribute type mapping.
44
+ def self.swagger_types
45
+ {
46
+ :'address1' => :'String',
47
+ :'address2' => :'String',
48
+ :'town' => :'String',
49
+ :'post_code' => :'String',
50
+ :'country' => :'String',
51
+ :'county' => :'String'
52
+ }
53
+ end
54
+
55
+ # Initializes the object
56
+ # @param [Hash] attributes Model attributes in the form of hash
57
+ def initialize(attributes = {})
58
+ return unless attributes.is_a?(Hash)
59
+
60
+ # convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
62
+
63
+ if attributes.has_key?(:'address1')
64
+ self.address1 = attributes[:'address1']
65
+ end
66
+
67
+ if attributes.has_key?(:'address2')
68
+ self.address2 = attributes[:'address2']
69
+ end
70
+
71
+ if attributes.has_key?(:'town')
72
+ self.town = attributes[:'town']
73
+ end
74
+
75
+ if attributes.has_key?(:'post_code')
76
+ self.post_code = attributes[:'post_code']
77
+ end
78
+
79
+ if attributes.has_key?(:'country')
80
+ self.country = attributes[:'country']
81
+ end
82
+
83
+ if attributes.has_key?(:'county')
84
+ self.county = attributes[:'county']
85
+ end
86
+
87
+ end
88
+
89
+ # Show invalid properties with the reasons. Usually used together with valid?
90
+ # @return Array for valid properties with the reasons
91
+ def list_invalid_properties
92
+ invalid_properties = Array.new
93
+ if @address1.nil?
94
+ invalid_properties.push("invalid value for 'address1', address1 cannot be nil.")
95
+ end
96
+
97
+ if @address2.nil?
98
+ invalid_properties.push("invalid value for 'address2', address2 cannot be nil.")
99
+ end
100
+
101
+ if @town.nil?
102
+ invalid_properties.push("invalid value for 'town', town cannot be nil.")
103
+ end
104
+
105
+ if @post_code.nil?
106
+ invalid_properties.push("invalid value for 'post_code', post_code cannot be nil.")
107
+ end
108
+
109
+ if @country.nil?
110
+ invalid_properties.push("invalid value for 'country', country cannot be nil.")
111
+ end
112
+
113
+ if @county.nil?
114
+ invalid_properties.push("invalid value for 'county', county cannot be nil.")
115
+ end
116
+
117
+ return invalid_properties
118
+ end
119
+
120
+ # Check to see if the all the properties in the model are valid
121
+ # @return true if the model is valid
122
+ def valid?
123
+ return false if @address1.nil?
124
+ return false if @address2.nil?
125
+ return false if @town.nil?
126
+ return false if @post_code.nil?
127
+ return false if @country.nil?
128
+ return false if @county.nil?
129
+ return true
130
+ end
131
+
132
+ # Checks equality by comparing each attribute.
133
+ # @param [Object] Object to be compared
134
+ def ==(o)
135
+ return true if self.equal?(o)
136
+ self.class == o.class &&
137
+ address1 == o.address1 &&
138
+ address2 == o.address2 &&
139
+ town == o.town &&
140
+ post_code == o.post_code &&
141
+ country == o.country &&
142
+ county == o.county
143
+ end
144
+
145
+ # @see the `==` method
146
+ # @param [Object] Object to be compared
147
+ def eql?(o)
148
+ self == o
149
+ end
150
+
151
+ # Calculates hash code according to all attributes.
152
+ # @return [Fixnum] Hash code
153
+ def hash
154
+ [address1, address2, town, post_code, country, county].hash
155
+ end
156
+
157
+ # Builds the object from hash
158
+ # @param [Hash] attributes Model attributes in the form of hash
159
+ # @return [Object] Returns the model itself
160
+ def build_from_hash(attributes)
161
+ return nil unless attributes.is_a?(Hash)
162
+ self.class.swagger_types.each_pair do |key, type|
163
+ if type =~ /\AArray<(.*)>/i
164
+ # check to ensure the input is an array given that the the attribute
165
+ # is documented as an array but the input is not
166
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
167
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
168
+ end
169
+ elsif !attributes[self.class.attribute_map[key]].nil?
170
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
171
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
172
+ end
173
+
174
+ self
175
+ end
176
+
177
+ # Deserializes the data based on type
178
+ # @param string type Data type
179
+ # @param string value Value to be deserialized
180
+ # @return [Object] Deserialized data
181
+ def _deserialize(type, value)
182
+ case type.to_sym
183
+ when :DateTime
184
+ DateTime.parse(value)
185
+ when :Date
186
+ Date.parse(value)
187
+ when :String
188
+ value.to_s
189
+ when :Integer
190
+ value.to_i
191
+ when :Float
192
+ value.to_f
193
+ when :BOOLEAN
194
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
195
+ true
196
+ else
197
+ false
198
+ end
199
+ when :Object
200
+ # generic object (usually a Hash), return directly
201
+ value
202
+ when /\AArray<(?<inner_type>.+)>\z/
203
+ inner_type = Regexp.last_match[:inner_type]
204
+ value.map { |v| _deserialize(inner_type, v) }
205
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
206
+ k_type = Regexp.last_match[:k_type]
207
+ v_type = Regexp.last_match[:v_type]
208
+ {}.tap do |hash|
209
+ value.each do |k, v|
210
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
211
+ end
212
+ end
213
+ else # model
214
+ temp_model = Noths.const_get(type).new
215
+ temp_model.build_from_hash(value)
216
+ end
217
+ end
218
+
219
+ # Returns the string representation of the object
220
+ # @return [String] String presentation of the object
221
+ def to_s
222
+ to_hash.to_s
223
+ end
224
+
225
+ # to_body is an alias to to_hash (backward compatibility)
226
+ # @return [Hash] Returns the object in the form of hash
227
+ def to_body
228
+ to_hash
229
+ end
230
+
231
+ # Returns the object in the form of hash
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_hash
234
+ hash = {}
235
+ self.class.attribute_map.each_pair do |attr, param|
236
+ value = self.send(attr)
237
+ next if value.nil?
238
+ hash[param] = _to_hash(value)
239
+ end
240
+ hash
241
+ end
242
+
243
+ # Outputs non-array value in the form of hash
244
+ # For object, use to_hash. Otherwise, just return the value
245
+ # @param [Object] value Any valid value
246
+ # @return [Hash] Returns the value in the form of hash
247
+ def _to_hash(value)
248
+ if value.is_a?(Array)
249
+ value.compact.map{ |v| _to_hash(v) }
250
+ elsif value.is_a?(Hash)
251
+ {}.tap do |hash|
252
+ value.each { |k, v| hash[k] = _to_hash(v) }
253
+ end
254
+ elsif value.respond_to? :to_hash
255
+ value.to_hash
256
+ else
257
+ value
258
+ end
259
+ end
260
+
261
+ end
262
+
263
+ end