square_connect 2.0.0 → 2.0.2.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +7 -0
  3. data/README.md +151 -9
  4. data/Rakefile +8 -0
  5. data/docs/Address.md +26 -0
  6. data/docs/CaptureTransactionRequest.md +11 -0
  7. data/docs/CaptureTransactionResponse.md +12 -0
  8. data/docs/Card.md +18 -0
  9. data/docs/CardBrand.md +20 -0
  10. data/docs/ChargeRequest.md +22 -0
  11. data/docs/ChargeResponse.md +13 -0
  12. data/docs/Checkout.md +20 -0
  13. data/docs/CheckoutApi.md +62 -0
  14. data/docs/Country.md +261 -0
  15. data/docs/CreateCheckoutRequest.md +18 -0
  16. data/docs/CreateCheckoutResponse.md +13 -0
  17. data/docs/CreateCustomerCardRequest.md +14 -0
  18. data/docs/CreateCustomerCardResponse.md +13 -0
  19. data/docs/CreateCustomerRequest.md +20 -0
  20. data/docs/CreateCustomerResponse.md +13 -0
  21. data/docs/CreateOrderRequest.md +13 -0
  22. data/docs/CreateOrderRequestLineItem.md +14 -0
  23. data/docs/CreateOrderRequestOrder.md +13 -0
  24. data/docs/CreateRefundRequest.md +15 -0
  25. data/docs/CreateRefundResponse.md +13 -0
  26. data/docs/Currency.md +191 -0
  27. data/docs/Customer.md +26 -0
  28. data/docs/CustomerApi.md +267 -0
  29. data/docs/CustomerCardApi.md +116 -0
  30. data/docs/CustomerGroupInfo.md +13 -0
  31. data/docs/CustomerPreferences.md +12 -0
  32. data/docs/DeleteCustomerCardRequest.md +11 -0
  33. data/docs/DeleteCustomerCardResponse.md +12 -0
  34. data/docs/DeleteCustomerRequest.md +11 -0
  35. data/docs/DeleteCustomerResponse.md +12 -0
  36. data/docs/Error.md +15 -0
  37. data/docs/ErrorCategory.md +17 -0
  38. data/docs/ErrorCode.md +83 -0
  39. data/docs/ListCustomersRequest.md +12 -0
  40. data/docs/ListCustomersResponse.md +14 -0
  41. data/docs/ListLocationsRequest.md +11 -0
  42. data/docs/ListLocationsResponse.md +13 -0
  43. data/docs/ListRefundsRequest.md +15 -0
  44. data/docs/ListRefundsResponse.md +14 -0
  45. data/docs/ListTransactionsRequest.md +15 -0
  46. data/docs/ListTransactionsResponse.md +14 -0
  47. data/docs/Location.md +16 -0
  48. data/docs/LocationApi.md +56 -0
  49. data/docs/LocationCapability.md +12 -0
  50. data/docs/Money.md +13 -0
  51. data/docs/Order.md +16 -0
  52. data/docs/OrderLineItem.md +16 -0
  53. data/docs/Refund.md +20 -0
  54. data/docs/RefundApi.md +126 -0
  55. data/docs/RefundStatus.md +15 -0
  56. data/docs/RetrieveCustomerRequest.md +11 -0
  57. data/docs/RetrieveCustomerResponse.md +13 -0
  58. data/docs/RetrieveTransactionRequest.md +11 -0
  59. data/docs/RetrieveTransactionResponse.md +13 -0
  60. data/docs/SortOrder.md +13 -0
  61. data/docs/Tender.md +22 -0
  62. data/docs/TenderCardDetails.md +14 -0
  63. data/docs/TenderCardDetailsEntryMethod.md +16 -0
  64. data/docs/TenderCardDetailsStatus.md +15 -0
  65. data/docs/TenderCashDetails.md +13 -0
  66. data/docs/TenderType.md +17 -0
  67. data/docs/Transaction.md +21 -0
  68. data/docs/TransactionApi.md +285 -0
  69. data/docs/TransactionProduct.md +19 -0
  70. data/docs/UpdateCustomerRequest.md +20 -0
  71. data/docs/UpdateCustomerResponse.md +13 -0
  72. data/docs/VoidTransactionRequest.md +11 -0
  73. data/docs/VoidTransactionResponse.md +12 -0
  74. data/lib/square_connect.rb +33 -16
  75. data/lib/square_connect/api/checkout_api.rb +82 -0
  76. data/lib/square_connect/api/customer_api.rb +121 -162
  77. data/lib/square_connect/api/customer_card_api.rb +31 -50
  78. data/lib/square_connect/api/location_api.rb +12 -20
  79. data/lib/square_connect/api/refund_api.rb +70 -90
  80. data/lib/square_connect/api/transaction_api.rb +119 -165
  81. data/lib/square_connect/api_client.rb +64 -17
  82. data/lib/square_connect/api_error.rb +7 -3
  83. data/lib/square_connect/configuration.rb +31 -1
  84. data/lib/square_connect/models/address.rb +149 -78
  85. data/lib/square_connect/models/capture_transaction_request.rb +176 -0
  86. data/lib/square_connect/models/capture_transaction_response.rb +54 -26
  87. data/lib/square_connect/models/card.rb +98 -52
  88. data/lib/square_connect/models/card_brand.rb +12 -133
  89. data/lib/square_connect/models/charge_request.rb +106 -67
  90. data/lib/square_connect/models/charge_response.rb +57 -30
  91. data/lib/square_connect/models/checkout.rb +266 -0
  92. data/lib/square_connect/models/country.rb +253 -133
  93. data/lib/square_connect/models/create_checkout_request.rb +316 -0
  94. data/lib/square_connect/models/create_checkout_response.rb +198 -0
  95. data/lib/square_connect/models/create_customer_card_request.rb +66 -35
  96. data/lib/square_connect/models/create_customer_card_response.rb +58 -31
  97. data/lib/square_connect/models/create_customer_request.rb +79 -59
  98. data/lib/square_connect/models/create_customer_response.rb +58 -31
  99. data/lib/square_connect/models/create_order_request.rb +234 -0
  100. data/lib/square_connect/models/create_order_request_line_item.rb +268 -0
  101. data/lib/square_connect/models/create_order_request_order.rb +219 -0
  102. data/lib/square_connect/models/create_refund_request.rb +79 -39
  103. data/lib/square_connect/models/create_refund_response.rb +57 -30
  104. data/lib/square_connect/models/currency.rb +183 -133
  105. data/lib/square_connect/models/customer.rb +130 -77
  106. data/lib/square_connect/models/customer_group_info.rb +206 -0
  107. data/lib/square_connect/models/customer_preferences.rb +186 -0
  108. data/lib/square_connect/models/delete_customer_card_request.rb +176 -0
  109. data/lib/square_connect/models/delete_customer_card_response.rb +55 -27
  110. data/lib/square_connect/models/delete_customer_request.rb +176 -0
  111. data/lib/square_connect/models/delete_customer_response.rb +55 -27
  112. data/lib/square_connect/models/error.rb +107 -45
  113. data/lib/square_connect/models/error_category.rb +9 -133
  114. data/lib/square_connect/models/error_code.rb +75 -133
  115. data/lib/square_connect/models/list_customers_request.rb +55 -27
  116. data/lib/square_connect/models/list_customers_response.rb +61 -35
  117. data/lib/square_connect/models/list_locations_request.rb +176 -0
  118. data/lib/square_connect/models/list_locations_response.rb +57 -30
  119. data/lib/square_connect/models/list_refunds_request.rb +91 -42
  120. data/lib/square_connect/models/list_refunds_response.rb +59 -33
  121. data/lib/square_connect/models/list_transactions_request.rb +91 -42
  122. data/lib/square_connect/models/list_transactions_response.rb +59 -33
  123. data/lib/square_connect/models/location.rb +86 -41
  124. data/lib/square_connect/models/location_capability.rb +4 -133
  125. data/lib/square_connect/models/money.rb +85 -34
  126. data/lib/square_connect/models/order.rb +228 -0
  127. data/lib/square_connect/models/order_line_item.rb +226 -0
  128. data/lib/square_connect/models/refund.rb +138 -59
  129. data/lib/square_connect/models/refund_status.rb +7 -133
  130. data/lib/square_connect/models/retrieve_customer_request.rb +176 -0
  131. data/lib/square_connect/models/retrieve_customer_response.rb +58 -31
  132. data/lib/square_connect/models/retrieve_transaction_request.rb +176 -0
  133. data/lib/square_connect/models/retrieve_transaction_response.rb +57 -30
  134. data/lib/square_connect/models/sort_order.rb +5 -133
  135. data/lib/square_connect/models/tender.rb +112 -65
  136. data/lib/square_connect/models/tender_card_details.rb +93 -40
  137. data/lib/square_connect/models/tender_card_details_entry_method.rb +8 -133
  138. data/lib/square_connect/models/tender_card_details_status.rb +7 -133
  139. data/lib/square_connect/models/tender_cash_details.rb +58 -31
  140. data/lib/square_connect/models/tender_type.rb +9 -133
  141. data/lib/square_connect/models/transaction.rb +132 -56
  142. data/lib/square_connect/models/transaction_product.rb +11 -133
  143. data/lib/square_connect/models/update_customer_request.rb +79 -59
  144. data/lib/square_connect/models/update_customer_response.rb +58 -31
  145. data/lib/square_connect/models/void_transaction_request.rb +176 -0
  146. data/lib/square_connect/models/void_transaction_response.rb +54 -26
  147. data/lib/square_connect/version.rb +2 -3
  148. data/spec/api/checkout_api_spec.rb +53 -0
  149. data/spec/api/customer_api_spec.rb +121 -0
  150. data/spec/api/customer_card_api_spec.rb +71 -0
  151. data/spec/api/location_api_spec.rb +58 -0
  152. data/spec/api/refund_api_spec.rb +75 -0
  153. data/spec/api/transaction_api_spec.rb +128 -0
  154. data/spec/api_client_spec.rb +226 -0
  155. data/spec/configuration_spec.rb +42 -0
  156. data/spec/models/address_spec.rb +186 -0
  157. data/spec/models/capture_transaction_request_spec.rb +36 -0
  158. data/spec/models/capture_transaction_response_spec.rb +46 -0
  159. data/spec/models/card_brand_spec.rb +36 -0
  160. data/spec/models/card_spec.rb +106 -0
  161. data/spec/models/charge_request_spec.rb +146 -0
  162. data/spec/models/charge_response_spec.rb +56 -0
  163. data/spec/models/checkout_spec.rb +126 -0
  164. data/spec/models/country_spec.rb +36 -0
  165. data/spec/models/create_checkout_request_spec.rb +106 -0
  166. data/spec/models/create_checkout_response_spec.rb +56 -0
  167. data/spec/models/create_customer_card_request_spec.rb +66 -0
  168. data/spec/models/create_customer_card_response_spec.rb +56 -0
  169. data/spec/models/create_customer_request_spec.rb +126 -0
  170. data/spec/models/create_customer_response_spec.rb +56 -0
  171. data/spec/models/create_order_request_line_item_spec.rb +66 -0
  172. data/spec/models/create_order_request_order_spec.rb +56 -0
  173. data/spec/models/create_order_request_spec.rb +56 -0
  174. data/spec/models/create_refund_request_spec.rb +76 -0
  175. data/spec/models/create_refund_response_spec.rb +56 -0
  176. data/spec/models/currency_spec.rb +36 -0
  177. data/spec/models/customer_group_info_spec.rb +56 -0
  178. data/spec/models/customer_preferences_spec.rb +46 -0
  179. data/spec/models/customer_spec.rb +186 -0
  180. data/spec/models/delete_customer_card_request_spec.rb +36 -0
  181. data/spec/models/delete_customer_card_response_spec.rb +46 -0
  182. data/spec/models/delete_customer_request_spec.rb +36 -0
  183. data/spec/models/delete_customer_response_spec.rb +46 -0
  184. data/spec/models/error_category_spec.rb +36 -0
  185. data/spec/models/error_code_spec.rb +36 -0
  186. data/spec/models/error_spec.rb +76 -0
  187. data/spec/models/list_customers_request_spec.rb +46 -0
  188. data/spec/models/list_customers_response_spec.rb +66 -0
  189. data/spec/models/list_locations_request_spec.rb +36 -0
  190. data/spec/models/list_locations_response_spec.rb +56 -0
  191. data/spec/models/list_refunds_request_spec.rb +76 -0
  192. data/spec/models/list_refunds_response_spec.rb +66 -0
  193. data/spec/models/list_transactions_request_spec.rb +76 -0
  194. data/spec/models/list_transactions_response_spec.rb +66 -0
  195. data/spec/models/location_capability_spec.rb +36 -0
  196. data/spec/models/location_spec.rb +86 -0
  197. data/spec/models/money_spec.rb +56 -0
  198. data/spec/models/order_line_item_spec.rb +86 -0
  199. data/spec/models/order_spec.rb +86 -0
  200. data/spec/models/refund_spec.rb +126 -0
  201. data/spec/models/refund_status_spec.rb +36 -0
  202. data/spec/models/retrieve_customer_request_spec.rb +36 -0
  203. data/spec/models/retrieve_customer_response_spec.rb +56 -0
  204. data/spec/models/retrieve_transaction_request_spec.rb +36 -0
  205. data/spec/models/retrieve_transaction_response_spec.rb +56 -0
  206. data/spec/models/sort_order_spec.rb +36 -0
  207. data/spec/models/tender_card_details_entry_method_spec.rb +36 -0
  208. data/spec/models/tender_card_details_spec.rb +66 -0
  209. data/spec/models/tender_card_details_status_spec.rb +36 -0
  210. data/spec/models/tender_cash_details_spec.rb +56 -0
  211. data/spec/models/tender_spec.rb +146 -0
  212. data/spec/models/tender_type_spec.rb +36 -0
  213. data/spec/models/transaction_product_spec.rb +36 -0
  214. data/spec/models/transaction_spec.rb +136 -0
  215. data/spec/models/update_customer_request_spec.rb +126 -0
  216. data/spec/models/update_customer_response_spec.rb +56 -0
  217. data/spec/models/void_transaction_request_spec.rb +36 -0
  218. data/spec/models/void_transaction_response_spec.rb +46 -0
  219. data/spec/spec_helper.rb +115 -0
  220. data/square_connect.gemspec +22 -11
  221. data/travis-ci/accounts.enc +0 -0
  222. metadata +264 -31
@@ -1,147 +1,26 @@
1
1
  =begin
2
- Square Connect API
2
+ #Square Connect API
3
3
 
4
4
  OpenAPI spec version: 2.0
5
5
 
6
6
  Generated by: https://github.com/swagger-api/swagger-codegen.git
7
7
 
8
-
9
8
  =end
10
9
 
11
10
  require 'date'
12
11
 
13
12
  module SquareConnect
14
- #
15
13
  class CardBrand
16
- # Attribute mapping from ruby-style variable name to JSON key.
17
- def self.attribute_map
18
- {
19
-
20
- }
21
- end
22
-
23
- # Attribute type mapping.
24
- def self.swagger_types
25
- {
26
-
27
- }
28
- end
29
-
30
- def initialize(attributes = {})
31
- return unless attributes.is_a?(Hash)
32
-
33
- # convert string to symbol for hash key
34
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
35
-
36
-
37
- end
38
-
39
- # Check equality by comparing each attribute.
40
- def ==(o)
41
- return true if self.equal?(o)
42
- self.class == o.class
43
- end
44
-
45
- # @see the `==` method
46
- def eql?(o)
47
- self == o
48
- end
49
-
50
- # Calculate hash code according to all attributes.
51
- def hash
52
- [].hash
53
- end
54
-
55
- # build the object from hash
56
- def build_from_hash(attributes)
57
- return nil unless attributes.is_a?(Hash)
58
- self.class.swagger_types.each_pair do |key, type|
59
- if type =~ /^Array<(.*)>/i
60
- if attributes[self.class.attribute_map[key]].is_a?(Array)
61
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
62
- else
63
- #TODO show warning in debug mode
64
- end
65
- elsif !attributes[self.class.attribute_map[key]].nil?
66
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
67
- else
68
- # data not found in attributes(hash), not an issue as the data can be optional
69
- end
70
- end
71
-
72
- self
73
- end
74
-
75
- def _deserialize(type, value)
76
- case type.to_sym
77
- when :DateTime
78
- DateTime.parse(value)
79
- when :Date
80
- Date.parse(value)
81
- when :String
82
- value.to_s
83
- when :Integer
84
- value.to_i
85
- when :Float
86
- value.to_f
87
- when :BOOLEAN
88
- if value.to_s =~ /^(true|t|yes|y|1)$/i
89
- true
90
- else
91
- false
92
- end
93
- when /\AArray<(?<inner_type>.+)>\z/
94
- inner_type = Regexp.last_match[:inner_type]
95
- value.map { |v| _deserialize(inner_type, v) }
96
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
97
- k_type = Regexp.last_match[:k_type]
98
- v_type = Regexp.last_match[:v_type]
99
- {}.tap do |hash|
100
- value.each do |k, v|
101
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
102
- end
103
- end
104
- else # model
105
- _model = SquareConnect.const_get(type).new
106
- _model.build_from_hash(value)
107
- end
108
- end
109
-
110
- def to_s
111
- to_hash.to_s
112
- end
113
-
114
- # to_body is an alias to to_body (backward compatibility))
115
- def to_body
116
- to_hash
117
- end
118
-
119
- # return the object in the form of hash
120
- def to_hash
121
- hash = {}
122
- self.class.attribute_map.each_pair do |attr, param|
123
- value = self.send(attr)
124
- next if value.nil?
125
- hash[param] = _to_hash(value)
126
- end
127
- hash
128
- end
129
-
130
- # Method to output non-array value in the form of hash
131
- # For object, use to_hash. Otherwise, just return the value
132
- def _to_hash(value)
133
- if value.is_a?(Array)
134
- value.compact.map{ |v| _to_hash(v) }
135
- elsif value.is_a?(Hash)
136
- {}.tap do |hash|
137
- value.each { |k, v| hash[k] = _to_hash(v) }
138
- end
139
- elsif value.respond_to? :to_hash
140
- value.to_hash
141
- else
142
- value
143
- end
144
- end
145
-
14
+
15
+ OTHER_BRAND = "OTHER_BRAND".freeze
16
+ VISA = "VISA".freeze
17
+ MASTERCARD = "MASTERCARD".freeze
18
+ AMERICAN_EXPRESS = "AMERICAN_EXPRESS".freeze
19
+ DISCOVER = "DISCOVER".freeze
20
+ DISCOVER_DINERS = "DISCOVER_DINERS".freeze
21
+ JCB = "JCB".freeze
22
+ CHINA_UNIONPAY = "CHINA_UNIONPAY".freeze
23
+ SQUARE_GIFT_CARD = "SQUARE_GIFT_CARD".freeze
146
24
  end
25
+
147
26
  end
@@ -1,72 +1,65 @@
1
1
  =begin
2
- Square Connect API
2
+ #Square Connect API
3
3
 
4
4
  OpenAPI spec version: 2.0
5
5
 
6
6
  Generated by: https://github.com/swagger-api/swagger-codegen.git
7
7
 
8
-
9
8
  =end
10
9
 
11
10
  require 'date'
12
11
 
13
12
  module SquareConnect
14
- # Defines the parameters that can be included in the body of\na request to the **Charge** endpoint.
13
+ # Defines the parameters that can be included in the body of a request to the [Charge](#endpoint-charge) endpoint.
15
14
  class ChargeRequest
16
- # A value you specify that uniquely identifies this\ntransaction among transactions you've created.\n\nIf you're unsure whether a particular transaction succeeded,\nyou can reattempt it with the same idempotency key without\nworrying about double-charging the buyer. Note that *all other fields*\nmust also remain identical in your followup request, or an error will occur.
15
+ # A value you specify that uniquely identifies this transaction among transactions you've created. If you're unsure whether a particular transaction succeeded, you can reattempt it with the same idempotency key without worrying about double-charging the buyer. See [Idempotency keys](#idempotencykeys) for more information.
17
16
  attr_accessor :idempotency_key
18
17
 
19
- # The amount of money to collect in the transaction.
18
+ # The amount of money to charge. Note that you specify the amount in the __smallest denomination of the applicable currency__. For example, US dollar amounts are specified in cents. See [Working with monetary amounts](#workingwithmonetaryamounts) for details. The value of `currency` must match the currency associated with the business that is charging the card.
20
19
  attr_accessor :amount_money
21
20
 
22
- # A nonce representing the credit card to charge for this transaction.\nDo not provide a value for this field if you provide a value for\n`customer_card_id`.
21
+ # A nonce generated from the `SqPaymentForm` that represents the card to charge. The application that provides a nonce to this endpoint must be the _same application_ that generated the nonce with the `SqPaymentForm`. Otherwise, the nonce is invalid. Do not provide a value for this field if you provide a value for `customer_card_id`.
23
22
  attr_accessor :card_nonce
24
23
 
25
- # The ID of the customer card on file to charge for this transaction. Do\nnot provide a value for this field if you provide a value for `card_nonce`.
24
+ # The ID of the customer card on file to charge. Do not provide a value for this field if you provide a value for `card_nonce`. If you provide this value, you _must_ also provide a value for `customer_id`.
26
25
  attr_accessor :customer_card_id
27
26
 
28
- # If `true`, the request will only perform an Auth on the provided\ncard. You can then later perform either a Capture (with the\n*CaptureTransaction** endpoint) or a Void (with the **VoidTransation**\nendpoint.
27
+ # If `true`, the request will only perform an Auth on the provided card. You can then later perform either a Capture (with the [CaptureTransaction](#endpoint-capturetransaction) endpoint) or a Void (with the [VoidTransation](#endpoint-voidtransaction) endpoint). Default value: `false`
29
28
  attr_accessor :delay_capture
30
29
 
31
- # An optional ID you can associate with the transaction for your own\npurposes (such as to associate the transaction with an entity ID in your\nown database).
30
+ # An optional ID you can associate with the transaction for your own purposes (such as to associate the transaction with an entity ID in your own database). This value cannot exceed 40 characters.
32
31
  attr_accessor :reference_id
33
32
 
34
- # An optional note to associate with the transaction.
33
+ # An optional note to associate with the transaction. This value cannot exceed 60 characters.
35
34
  attr_accessor :note
36
35
 
37
- # The ID of the customer to associate this transaction with. This field\nis required if you provide a value for `customer_card_id`, and optional\notherwise.
36
+ # The ID of the customer to associate this transaction with. This field is required if you provide a value for `customer_card_id`, and optional otherwise.
38
37
  attr_accessor :customer_id
39
38
 
40
- # If available, Postal code in the billing address for US and Canada payments may reduce decline rate.
39
+ # The buyer's billing address. This value is optional, but this transaction is ineligible for chargeback protection if neither this parameter nor `shipping_address` is provided.
41
40
  attr_accessor :billing_address
42
41
 
43
- #
42
+ # The buyer's shipping address, if available. This value is optional, but this transaction is ineligible for chargeback protection if neither this parameter nor `billing_address` is provided.
44
43
  attr_accessor :shipping_address
45
44
 
45
+ # The buyer's email address, if available. This value is optional, but this transaction is ineligible for chargeback protection if it is not provided.
46
+ attr_accessor :buyer_email_address
47
+
48
+
46
49
  # Attribute mapping from ruby-style variable name to JSON key.
47
50
  def self.attribute_map
48
51
  {
49
-
50
52
  :'idempotency_key' => :'idempotency_key',
51
-
52
53
  :'amount_money' => :'amount_money',
53
-
54
54
  :'card_nonce' => :'card_nonce',
55
-
56
55
  :'customer_card_id' => :'customer_card_id',
57
-
58
56
  :'delay_capture' => :'delay_capture',
59
-
60
57
  :'reference_id' => :'reference_id',
61
-
62
58
  :'note' => :'note',
63
-
64
59
  :'customer_id' => :'customer_id',
65
-
66
60
  :'billing_address' => :'billing_address',
67
-
68
- :'shipping_address' => :'shipping_address'
69
-
61
+ :'shipping_address' => :'shipping_address',
62
+ :'buyer_email_address' => :'buyer_email_address'
70
63
  }
71
64
  end
72
65
 
@@ -82,61 +75,90 @@ module SquareConnect
82
75
  :'note' => :'String',
83
76
  :'customer_id' => :'String',
84
77
  :'billing_address' => :'Address',
85
- :'shipping_address' => :'Address'
86
-
78
+ :'shipping_address' => :'Address',
79
+ :'buyer_email_address' => :'String'
87
80
  }
88
81
  end
89
82
 
83
+ # Initializes the object
84
+ # @param [Hash] attributes Model attributes in the form of hash
90
85
  def initialize(attributes = {})
91
86
  return unless attributes.is_a?(Hash)
92
87
 
93
88
  # convert string to symbol for hash key
94
- attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
89
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
95
90
 
96
-
97
- if attributes[:'idempotency_key']
91
+ if attributes.has_key?(:'idempotency_key')
98
92
  self.idempotency_key = attributes[:'idempotency_key']
99
93
  end
100
-
101
- if attributes[:'amount_money']
94
+
95
+ if attributes.has_key?(:'amount_money')
102
96
  self.amount_money = attributes[:'amount_money']
103
97
  end
104
-
105
- if attributes[:'card_nonce']
98
+
99
+ if attributes.has_key?(:'card_nonce')
106
100
  self.card_nonce = attributes[:'card_nonce']
107
101
  end
108
-
109
- if attributes[:'customer_card_id']
102
+
103
+ if attributes.has_key?(:'customer_card_id')
110
104
  self.customer_card_id = attributes[:'customer_card_id']
111
105
  end
112
-
113
- if attributes[:'delay_capture']
106
+
107
+ if attributes.has_key?(:'delay_capture')
114
108
  self.delay_capture = attributes[:'delay_capture']
115
109
  end
116
-
117
- if attributes[:'reference_id']
110
+
111
+ if attributes.has_key?(:'reference_id')
118
112
  self.reference_id = attributes[:'reference_id']
119
113
  end
120
-
121
- if attributes[:'note']
114
+
115
+ if attributes.has_key?(:'note')
122
116
  self.note = attributes[:'note']
123
117
  end
124
-
125
- if attributes[:'customer_id']
118
+
119
+ if attributes.has_key?(:'customer_id')
126
120
  self.customer_id = attributes[:'customer_id']
127
121
  end
128
-
129
- if attributes[:'billing_address']
122
+
123
+ if attributes.has_key?(:'billing_address')
130
124
  self.billing_address = attributes[:'billing_address']
131
125
  end
132
-
133
- if attributes[:'shipping_address']
126
+
127
+ if attributes.has_key?(:'shipping_address')
134
128
  self.shipping_address = attributes[:'shipping_address']
135
129
  end
136
-
130
+
131
+ if attributes.has_key?(:'buyer_email_address')
132
+ self.buyer_email_address = attributes[:'buyer_email_address']
133
+ end
134
+
135
+ end
136
+
137
+ # Show invalid properties with the reasons. Usually used together with valid?
138
+ # @return Array for valid properies with the reasons
139
+ def list_invalid_properties
140
+ invalid_properties = Array.new
141
+ if @idempotency_key.nil?
142
+ invalid_properties.push("invalid value for 'idempotency_key', idempotency_key cannot be nil.")
143
+ end
144
+
145
+ if @amount_money.nil?
146
+ invalid_properties.push("invalid value for 'amount_money', amount_money cannot be nil.")
147
+ end
148
+
149
+ return invalid_properties
137
150
  end
138
151
 
139
- # Check equality by comparing each attribute.
152
+ # Check to see if the all the properties in the model are valid
153
+ # @return true if the model is valid
154
+ def valid?
155
+ return false if @idempotency_key.nil?
156
+ return false if @amount_money.nil?
157
+ return true
158
+ end
159
+
160
+ # Checks equality by comparing each attribute.
161
+ # @param [Object] Object to be compared
140
162
  def ==(o)
141
163
  return true if self.equal?(o)
142
164
  self.class == o.class &&
@@ -149,39 +171,46 @@ module SquareConnect
149
171
  note == o.note &&
150
172
  customer_id == o.customer_id &&
151
173
  billing_address == o.billing_address &&
152
- shipping_address == o.shipping_address
174
+ shipping_address == o.shipping_address &&
175
+ buyer_email_address == o.buyer_email_address
153
176
  end
154
177
 
155
178
  # @see the `==` method
179
+ # @param [Object] Object to be compared
156
180
  def eql?(o)
157
181
  self == o
158
182
  end
159
183
 
160
- # Calculate hash code according to all attributes.
184
+ # Calculates hash code according to all attributes.
185
+ # @return [Fixnum] Hash code
161
186
  def hash
162
- [idempotency_key, amount_money, card_nonce, customer_card_id, delay_capture, reference_id, note, customer_id, billing_address, shipping_address].hash
187
+ [idempotency_key, amount_money, card_nonce, customer_card_id, delay_capture, reference_id, note, customer_id, billing_address, shipping_address, buyer_email_address].hash
163
188
  end
164
189
 
165
- # build the object from hash
190
+ # Builds the object from hash
191
+ # @param [Hash] attributes Model attributes in the form of hash
192
+ # @return [Object] Returns the model itself
166
193
  def build_from_hash(attributes)
167
194
  return nil unless attributes.is_a?(Hash)
168
195
  self.class.swagger_types.each_pair do |key, type|
169
- if type =~ /^Array<(.*)>/i
196
+ if type =~ /\AArray<(.*)>/i
197
+ # check to ensure the input is an array given that the the attribute
198
+ # is documented as an array but the input is not
170
199
  if attributes[self.class.attribute_map[key]].is_a?(Array)
171
200
  self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
172
- else
173
- #TODO show warning in debug mode
174
201
  end
175
202
  elsif !attributes[self.class.attribute_map[key]].nil?
176
203
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
177
- else
178
- # data not found in attributes(hash), not an issue as the data can be optional
179
- end
204
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
180
205
  end
181
206
 
182
207
  self
183
208
  end
184
209
 
210
+ # Deserializes the data based on type
211
+ # @param string type Data type
212
+ # @param string value Value to be deserialized
213
+ # @return [Object] Deserialized data
185
214
  def _deserialize(type, value)
186
215
  case type.to_sym
187
216
  when :DateTime
@@ -195,15 +224,18 @@ module SquareConnect
195
224
  when :Float
196
225
  value.to_f
197
226
  when :BOOLEAN
198
- if value.to_s =~ /^(true|t|yes|y|1)$/i
227
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
199
228
  true
200
229
  else
201
230
  false
202
231
  end
232
+ when :Object
233
+ # generic object (usually a Hash), return directly
234
+ value
203
235
  when /\AArray<(?<inner_type>.+)>\z/
204
236
  inner_type = Regexp.last_match[:inner_type]
205
237
  value.map { |v| _deserialize(inner_type, v) }
206
- when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
238
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
207
239
  k_type = Regexp.last_match[:k_type]
208
240
  v_type = Regexp.last_match[:v_type]
209
241
  {}.tap do |hash|
@@ -212,21 +244,25 @@ module SquareConnect
212
244
  end
213
245
  end
214
246
  else # model
215
- _model = SquareConnect.const_get(type).new
216
- _model.build_from_hash(value)
247
+ temp_model = SquareConnect.const_get(type).new
248
+ temp_model.build_from_hash(value)
217
249
  end
218
250
  end
219
251
 
252
+ # Returns the string representation of the object
253
+ # @return [String] String presentation of the object
220
254
  def to_s
221
255
  to_hash.to_s
222
256
  end
223
257
 
224
- # to_body is an alias to to_body (backward compatibility))
258
+ # to_body is an alias to to_hash (backward compatibility)
259
+ # @return [Hash] Returns the object in the form of hash
225
260
  def to_body
226
261
  to_hash
227
262
  end
228
263
 
229
- # return the object in the form of hash
264
+ # Returns the object in the form of hash
265
+ # @return [Hash] Returns the object in the form of hash
230
266
  def to_hash
231
267
  hash = {}
232
268
  self.class.attribute_map.each_pair do |attr, param|
@@ -237,8 +273,10 @@ module SquareConnect
237
273
  hash
238
274
  end
239
275
 
240
- # Method to output non-array value in the form of hash
276
+ # Outputs non-array value in the form of hash
241
277
  # For object, use to_hash. Otherwise, just return the value
278
+ # @param [Object] value Any valid value
279
+ # @return [Hash] Returns the value in the form of hash
242
280
  def _to_hash(value)
243
281
  if value.is_a?(Array)
244
282
  value.compact.map{ |v| _to_hash(v) }
@@ -254,4 +292,5 @@ module SquareConnect
254
292
  end
255
293
 
256
294
  end
295
+
257
296
  end