braintree 2.74.0 → 4.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE +1 -1
  3. data/braintree.gemspec +13 -7
  4. data/lib/braintree/account_updater_daily_report.rb +2 -2
  5. data/lib/braintree/ach_mandate.rb +2 -1
  6. data/lib/braintree/address/country_names.rb +4 -1
  7. data/lib/braintree/address.rb +30 -38
  8. data/lib/braintree/address_gateway.rb +12 -2
  9. data/lib/braintree/advanced_search.rb +8 -0
  10. data/lib/braintree/apple_pay.rb +29 -0
  11. data/lib/braintree/apple_pay_card.rb +28 -4
  12. data/lib/braintree/apple_pay_gateway.rb +37 -0
  13. data/lib/braintree/apple_pay_options.rb +19 -0
  14. data/lib/braintree/authorization_adjustment.rb +23 -0
  15. data/lib/braintree/base_module.rb +10 -0
  16. data/lib/braintree/bin_data.rb +33 -0
  17. data/lib/braintree/client_token.rb +3 -3
  18. data/lib/braintree/client_token_gateway.rb +3 -1
  19. data/lib/braintree/configuration.rb +57 -10
  20. data/lib/braintree/connected_merchant_paypal_status_changed.rb +6 -2
  21. data/lib/braintree/connected_merchant_status_transitioned.rb +6 -2
  22. data/lib/braintree/credentials_parser.rb +5 -1
  23. data/lib/braintree/credit_card.rb +53 -107
  24. data/lib/braintree/credit_card_gateway.rb +43 -30
  25. data/lib/braintree/credit_card_verification.rb +61 -21
  26. data/lib/braintree/credit_card_verification_gateway.rb +19 -6
  27. data/lib/braintree/credit_card_verification_search.rb +1 -1
  28. data/lib/braintree/customer.rb +51 -98
  29. data/lib/braintree/customer_gateway.rb +30 -23
  30. data/lib/braintree/customer_search.rb +1 -1
  31. data/lib/braintree/descriptor.rb +3 -1
  32. data/lib/braintree/disbursement.rb +24 -2
  33. data/lib/braintree/dispute/evidence.rb +24 -0
  34. data/lib/braintree/{transaction/coinbase_details.rb → dispute/paypal_message.rb} +5 -3
  35. data/lib/braintree/dispute/status_history.rb +18 -0
  36. data/lib/braintree/dispute/transaction.rb +20 -0
  37. data/lib/braintree/dispute/transaction_details.rb +2 -1
  38. data/lib/braintree/dispute.rb +114 -10
  39. data/lib/braintree/dispute_gateway.rb +142 -0
  40. data/lib/braintree/dispute_search.rb +31 -0
  41. data/lib/braintree/document_upload.rb +37 -0
  42. data/lib/braintree/document_upload_gateway.rb +38 -0
  43. data/lib/braintree/enriched_customer_data.rb +21 -0
  44. data/lib/braintree/error_codes.rb +328 -109
  45. data/lib/braintree/error_result.rb +8 -1
  46. data/lib/braintree/exceptions.rb +5 -3
  47. data/lib/braintree/exchange_rate.rb +13 -0
  48. data/lib/braintree/exchange_rate_quote.rb +24 -0
  49. data/lib/braintree/exchange_rate_quote_gateway.rb +35 -0
  50. data/lib/braintree/exchange_rate_quote_input.rb +21 -0
  51. data/lib/braintree/exchange_rate_quote_request.rb +18 -0
  52. data/lib/braintree/exchange_rate_quote_response.rb +18 -0
  53. data/lib/braintree/facilitated_details.rb +21 -0
  54. data/lib/braintree/facilitator_details.rb +2 -1
  55. data/lib/braintree/gateway.rb +29 -11
  56. data/lib/braintree/google_pay_card.rb +61 -0
  57. data/lib/braintree/granted_payment_instrument_update.rb +23 -0
  58. data/lib/braintree/graphql_client.rb +34 -0
  59. data/lib/braintree/http.rb +81 -20
  60. data/lib/braintree/local_payment_completed.rb +23 -0
  61. data/lib/braintree/local_payment_expired.rb +21 -0
  62. data/lib/braintree/local_payment_funded.rb +22 -0
  63. data/lib/braintree/local_payment_reversed.rb +19 -0
  64. data/lib/braintree/merchant.rb +11 -4
  65. data/lib/braintree/merchant_account/address_details.rb +4 -1
  66. data/lib/braintree/merchant_account/business_details.rb +4 -1
  67. data/lib/braintree/merchant_account/funding_details.rb +6 -1
  68. data/lib/braintree/merchant_account/individual_details.rb +7 -2
  69. data/lib/braintree/merchant_account.rb +23 -10
  70. data/lib/braintree/merchant_account_gateway.rb +13 -1
  71. data/lib/braintree/merchant_gateway.rb +2 -2
  72. data/lib/braintree/modification.rb +1 -1
  73. data/lib/braintree/oauth_credentials.rb +5 -2
  74. data/lib/braintree/oauth_gateway.rb +8 -14
  75. data/lib/braintree/paginated_result.rb +3 -1
  76. data/lib/braintree/payment_instrument_type.rb +11 -11
  77. data/lib/braintree/payment_method.rb +20 -12
  78. data/lib/braintree/payment_method_customer_data_updated_metadata.rb +24 -0
  79. data/lib/braintree/payment_method_gateway.rb +82 -54
  80. data/lib/braintree/payment_method_nonce.rb +22 -8
  81. data/lib/braintree/payment_method_nonce_details.rb +40 -0
  82. data/lib/braintree/payment_method_nonce_details_payer_info.rb +32 -0
  83. data/lib/braintree/payment_method_nonce_gateway.rb +19 -2
  84. data/lib/braintree/payment_method_parser.rb +28 -0
  85. data/lib/braintree/paypal_account.rb +10 -1
  86. data/lib/braintree/plan.rb +25 -5
  87. data/lib/braintree/plan_gateway.rb +100 -0
  88. data/lib/braintree/processor_response_types.rb +7 -0
  89. data/lib/braintree/resource_collection.rb +8 -3
  90. data/lib/braintree/revoked_payment_method_metadata.rb +22 -0
  91. data/lib/braintree/risk_data/liability_shift.rb +22 -0
  92. data/lib/braintree/risk_data.rb +12 -2
  93. data/lib/braintree/samsung_pay_card.rb +83 -0
  94. data/lib/braintree/sepa_direct_debit_account.rb +60 -0
  95. data/lib/braintree/sepa_direct_debit_account_gateway.rb +25 -0
  96. data/lib/braintree/sepa_direct_debit_account_nonce_details.rb +28 -0
  97. data/lib/braintree/settlement_batch_summary.rb +2 -1
  98. data/lib/braintree/settlement_batch_summary_gateway.rb +2 -0
  99. data/lib/braintree/subscription/status_details.rb +8 -1
  100. data/lib/braintree/subscription.rb +56 -41
  101. data/lib/braintree/subscription_gateway.rb +25 -2
  102. data/lib/braintree/successful_result.rb +23 -1
  103. data/lib/braintree/test/authentication_id.rb +21 -0
  104. data/lib/braintree/test/credit_card.rb +13 -0
  105. data/lib/braintree/test/nonce.rb +28 -20
  106. data/lib/braintree/test/transaction_amounts.rb +1 -0
  107. data/lib/braintree/three_d_secure_info.rb +34 -2
  108. data/lib/braintree/transaction/address_details.rb +24 -4
  109. data/lib/braintree/transaction/apple_pay_details.rb +20 -2
  110. data/lib/braintree/transaction/credit_card_details.rb +45 -6
  111. data/lib/braintree/transaction/customer_details.rb +8 -1
  112. data/lib/braintree/transaction/disbursement_details.rb +6 -1
  113. data/lib/braintree/transaction/google_pay_details.rb +41 -0
  114. data/lib/braintree/transaction/installment/adjustment.rb +33 -0
  115. data/lib/braintree/transaction/installment.rb +28 -0
  116. data/lib/braintree/transaction/local_payment_details.rb +24 -0
  117. data/lib/braintree/transaction/paypal_details.rb +26 -4
  118. data/lib/braintree/transaction/paypal_here_details.rb +23 -0
  119. data/lib/braintree/transaction/{masterpass_card_details.rb → samsung_pay_card_details.rb} +21 -6
  120. data/lib/braintree/transaction/sepa_direct_debit_account_details.rb +27 -0
  121. data/lib/braintree/transaction/status_details.rb +5 -1
  122. data/lib/braintree/transaction/subscription_details.rb +4 -1
  123. data/lib/braintree/transaction/us_bank_account_details.rb +8 -1
  124. data/lib/braintree/transaction/venmo_account_details.rb +5 -1
  125. data/lib/braintree/transaction/visa_checkout_card_details.rb +19 -4
  126. data/lib/braintree/transaction.rb +201 -188
  127. data/lib/braintree/transaction_gateway.rb +124 -30
  128. data/lib/braintree/transaction_line_item.rb +40 -0
  129. data/lib/braintree/transaction_line_item_gateway.rb +19 -0
  130. data/lib/braintree/transaction_review.rb +18 -0
  131. data/lib/braintree/transaction_search.rb +6 -3
  132. data/lib/braintree/unknown_payment_method.rb +3 -2
  133. data/lib/braintree/us_bank_account.rb +24 -8
  134. data/lib/braintree/us_bank_account_gateway.rb +0 -1
  135. data/lib/braintree/us_bank_account_verification.rb +81 -0
  136. data/lib/braintree/us_bank_account_verification_gateway.rb +51 -0
  137. data/lib/braintree/us_bank_account_verification_search.rb +19 -0
  138. data/lib/braintree/util.rb +79 -9
  139. data/lib/braintree/validation_error.rb +13 -3
  140. data/lib/braintree/validation_error_collection.rb +2 -1
  141. data/lib/braintree/venmo_account.rb +11 -4
  142. data/lib/braintree/venmo_profile_data.rb +23 -0
  143. data/lib/braintree/version.rb +2 -2
  144. data/lib/braintree/visa_checkout_card.rb +29 -13
  145. data/lib/braintree/webhook_notification.rb +66 -26
  146. data/lib/braintree/webhook_notification_gateway.rb +5 -3
  147. data/lib/braintree/webhook_testing.rb +2 -2
  148. data/lib/braintree/webhook_testing_gateway.rb +721 -55
  149. data/lib/braintree/xml/generator.rb +6 -4
  150. data/lib/braintree/xml/parser.rb +22 -35
  151. data/lib/braintree/xml/rexml.rb +4 -5
  152. data/lib/braintree.rb +60 -22
  153. data/lib/ssl/api_braintreegateway_com.ca.crt +50 -0
  154. data/spec/fixtures/files/bt_logo.png +0 -0
  155. data/spec/fixtures/files/gif_extension_bt_logo.gif +0 -0
  156. data/spec/fixtures/files/malformed_pdf.pdf +1 -0
  157. data/spec/fixtures/files/too_long.pdf +0 -0
  158. data/spec/integration/braintree/add_on_spec.rb +3 -3
  159. data/spec/integration/braintree/address_spec.rb +30 -113
  160. data/spec/integration/braintree/advanced_search_spec.rb +45 -45
  161. data/spec/integration/braintree/apple_pay_spec.rb +63 -0
  162. data/spec/integration/braintree/braintree_gateway_spec.rb +72 -0
  163. data/spec/integration/braintree/client_api/client_token_spec.rb +14 -32
  164. data/spec/integration/braintree/client_api/spec_helper.rb +104 -65
  165. data/spec/integration/braintree/credit_card_spec.rb +460 -615
  166. data/spec/integration/braintree/credit_card_verification_search_spec.rb +2 -2
  167. data/spec/integration/braintree/credit_card_verification_spec.rb +222 -6
  168. data/spec/integration/braintree/customer_search_spec.rb +8 -8
  169. data/spec/integration/braintree/customer_spec.rb +810 -498
  170. data/spec/integration/braintree/discount_spec.rb +1 -1
  171. data/spec/integration/braintree/dispute_search_spec.rb +167 -0
  172. data/spec/integration/braintree/dispute_spec.rb +333 -0
  173. data/spec/integration/braintree/document_upload_spec.rb +87 -0
  174. data/spec/integration/braintree/error_codes_spec.rb +1 -1
  175. data/spec/integration/braintree/exchange_rate_quote_spec.rb +97 -0
  176. data/spec/integration/braintree/graphql_client_spec.rb +72 -0
  177. data/spec/integration/braintree/http_spec.rb +12 -4
  178. data/spec/integration/braintree/merchant_account_spec.rb +74 -26
  179. data/spec/integration/braintree/merchant_spec.rb +39 -13
  180. data/spec/integration/braintree/oauth_spec.rb +18 -25
  181. data/spec/integration/braintree/payment_method_nonce_spec.rb +239 -5
  182. data/spec/integration/braintree/payment_method_spec.rb +882 -300
  183. data/spec/integration/braintree/payment_method_us_bank_account_spec.rb +416 -0
  184. data/spec/integration/braintree/paypal_account_spec.rb +32 -31
  185. data/spec/integration/braintree/plan_spec.rb +82 -0
  186. data/spec/integration/braintree/samsung_pay_card_spec.rb +144 -0
  187. data/spec/integration/braintree/sepa_direct_debit_account_spec.rb +196 -0
  188. data/spec/integration/braintree/settlement_batch_summary_spec.rb +8 -8
  189. data/spec/integration/braintree/subscription_spec.rb +274 -180
  190. data/spec/integration/braintree/test/transaction_amounts_spec.rb +2 -2
  191. data/spec/integration/braintree/test_transaction_spec.rb +18 -18
  192. data/spec/integration/braintree/transaction_line_item_spec.rb +38 -0
  193. data/spec/integration/braintree/transaction_search_spec.rb +280 -152
  194. data/spec/integration/braintree/transaction_spec.rb +3709 -1175
  195. data/spec/integration/braintree/transaction_us_bank_account_spec.rb +438 -0
  196. data/spec/integration/braintree/us_bank_account_spec.rb +38 -17
  197. data/spec/integration/braintree/us_bank_account_verification_search_spec.rb +178 -0
  198. data/spec/integration/braintree/us_bank_account_verification_spec.rb +240 -0
  199. data/spec/integration/braintree/visa_checkout_card_spec.rb +5 -5
  200. data/spec/integration/spec_helper.rb +27 -6
  201. data/spec/oauth_test_helper.rb +1 -1
  202. data/spec/script/httpsd.rb +6 -6
  203. data/spec/spec_helper.rb +26 -23
  204. data/spec/unit/braintree/address_spec.rb +1 -9
  205. data/spec/unit/braintree/apple_pay_card_spec.rb +104 -4
  206. data/spec/unit/braintree/client_token_spec.rb +2 -2
  207. data/spec/unit/braintree/configuration_spec.rb +108 -33
  208. data/spec/unit/braintree/credit_card_spec.rb +62 -33
  209. data/spec/unit/braintree/credit_card_verification_gateway_spec.rb +51 -0
  210. data/spec/unit/braintree/credit_card_verification_search_spec.rb +1 -1
  211. data/spec/unit/braintree/credit_card_verification_spec.rb +39 -6
  212. data/spec/unit/braintree/customer_spec.rb +107 -27
  213. data/spec/unit/braintree/disbursement_spec.rb +59 -7
  214. data/spec/unit/braintree/dispute_search_spec.rb +66 -0
  215. data/spec/unit/braintree/dispute_spec.rb +472 -8
  216. data/spec/unit/braintree/document_upload_spec.rb +35 -0
  217. data/spec/unit/braintree/enriched_customer_data_spec.rb +32 -0
  218. data/spec/unit/braintree/error_result_spec.rb +5 -5
  219. data/spec/unit/braintree/errors_spec.rb +8 -8
  220. data/spec/unit/braintree/exchange_rate_quote_input_spec.rb +42 -0
  221. data/spec/unit/braintree/exchange_rate_quote_request_spec.rb +82 -0
  222. data/spec/unit/braintree/exchange_rate_quote_response_spec.rb +52 -0
  223. data/spec/unit/braintree/exchange_rate_quote_spec.rb +42 -0
  224. data/spec/unit/braintree/exchange_rate_spec.rb +23 -0
  225. data/spec/unit/braintree/http_spec.rb +93 -5
  226. data/spec/unit/braintree/local_payment_completed_spec.rb +50 -0
  227. data/spec/unit/braintree/local_payment_expired_spec.rb +24 -0
  228. data/spec/unit/braintree/local_payment_funded_spec.rb +34 -0
  229. data/spec/unit/braintree/merchant_account_spec.rb +1 -1
  230. data/spec/unit/braintree/modification_spec.rb +1 -1
  231. data/spec/unit/braintree/payment_method_customer_data_updated_metadata_spec.rb +45 -0
  232. data/spec/unit/braintree/payment_method_nonce_details_payer_info_spec.rb +31 -0
  233. data/spec/unit/braintree/payment_method_nonce_details_spec.rb +51 -0
  234. data/spec/unit/braintree/payment_method_nonce_spec.rb +40 -0
  235. data/spec/unit/braintree/payment_method_spec.rb +1 -1
  236. data/spec/unit/braintree/paypal_account_spec.rb +2 -2
  237. data/spec/unit/braintree/resource_collection_spec.rb +30 -1
  238. data/spec/unit/braintree/risk_data/liability_shift.rb +26 -0
  239. data/spec/unit/braintree/risk_data_spec.rb +40 -6
  240. data/spec/unit/braintree/sepa_debit_account_nonce_details_spec.rb +29 -0
  241. data/spec/unit/braintree/sepa_debit_account_spec.rb +86 -0
  242. data/spec/unit/braintree/subscription_search_spec.rb +1 -1
  243. data/spec/unit/braintree/subscription_spec.rb +2 -2
  244. data/spec/unit/braintree/successful_result_spec.rb +1 -1
  245. data/spec/unit/braintree/three_d_secure_info_spec.rb +34 -6
  246. data/spec/unit/braintree/transaction/credit_card_details_spec.rb +19 -3
  247. data/spec/unit/braintree/transaction/customer_details_spec.rb +1 -1
  248. data/spec/unit/braintree/transaction/deposit_details_spec.rb +2 -2
  249. data/spec/unit/braintree/transaction/installment_spec.rb +25 -0
  250. data/spec/unit/braintree/transaction/paypal_details_spec.rb +63 -0
  251. data/spec/unit/braintree/transaction/sepa_direct_debit_account_details_spec.rb +33 -0
  252. data/spec/unit/braintree/transaction_gateway_spec.rb +111 -0
  253. data/spec/unit/braintree/transaction_search_spec.rb +12 -12
  254. data/spec/unit/braintree/transaction_spec.rb +171 -55
  255. data/spec/unit/braintree/us_bank_account_verification_search_spec.rb +60 -0
  256. data/spec/unit/braintree/us_bank_account_verification_spec.rb +93 -0
  257. data/spec/unit/braintree/util_spec.rb +162 -19
  258. data/spec/unit/braintree/validation_error_collection_spec.rb +336 -133
  259. data/spec/unit/braintree/venmo_profile_data_spec.rb +32 -0
  260. data/spec/unit/braintree/webhook_notification_spec.rb +546 -114
  261. data/spec/unit/braintree/xml/parser_spec.rb +21 -16
  262. data/spec/unit/braintree/xml_spec.rb +31 -24
  263. data/spec/unit/braintree_spec.rb +1 -0
  264. metadata +290 -198
  265. data/README.rdoc +0 -93
  266. data/lib/braintree/amex_express_checkout_card.rb +0 -26
  267. data/lib/braintree/android_pay_card.rb +0 -35
  268. data/lib/braintree/coinbase_account.rb +0 -25
  269. data/lib/braintree/europe_bank_account.rb +0 -34
  270. data/lib/braintree/europe_bank_account_gateway.rb +0 -17
  271. data/lib/braintree/ideal_payment.rb +0 -46
  272. data/lib/braintree/ideal_payment_gateway.rb +0 -18
  273. data/lib/braintree/masterpass_card.rb +0 -66
  274. data/lib/braintree/settlement_batch.rb +0 -0
  275. data/lib/braintree/transaction/amex_express_checkout_details.rb +0 -14
  276. data/lib/braintree/transaction/android_pay_details.rb +0 -17
  277. data/lib/braintree/transaction/ideal_payment_details.rb +0 -13
  278. data/lib/braintree/transparent_redirect.rb +0 -40
  279. data/lib/braintree/transparent_redirect_gateway.rb +0 -105
  280. data/spec/hacks/tcp_socket.rb +0 -18
  281. data/spec/httpsd.pid +0 -1
  282. data/spec/integration/braintree/coinbase_spec.rb +0 -31
  283. data/spec/integration/braintree/ideal_payment_spec.rb +0 -87
  284. data/spec/integration/braintree/masterpass_card_spec.rb +0 -97
  285. data/spec/integration/braintree/transparent_redirect_spec.rb +0 -268
  286. data/spec/unit/braintree/transparent_redirect_spec.rb +0 -223
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b5ff462a25178db818b2842f450e090a3261bf43
4
- data.tar.gz: b9274e3d1eacf63c2d6586de28b74bc971269d0f
2
+ SHA256:
3
+ metadata.gz: bfe8849002c4dbacd2476b61311adc19f0939a2c42bb61ccf2ca797d59248054
4
+ data.tar.gz: 7f97e328fdd729365a0117bc8297edac4e12e8e383e8c7b10b06f74862bd8e34
5
5
  SHA512:
6
- metadata.gz: 26a48d433fc182bc04d3c975180426dcda4223dd1a241ad1a9e1b423b9e83a06455fd72b14645fb6c3949328de68b86f301c9b6bd14b1fb3cc731ea95263c4d7
7
- data.tar.gz: 460a9239f0c15f74d0859fcb70b0ac4625025955f3ead20b2f5a791ae55cd9468b2f963906ab28a0c624b8e8c308ca5173b94a47135787fcd2d8c6e424592924
6
+ metadata.gz: 20e3ed69efa6b094974b3461165a3197958df6e62be5f9952d676d14c7411bdae5c2169b2f0e86eab743a94475f436baf3b907ff1dab4a45e984eafa741e3356
7
+ data.tar.gz: b7e5bcbe3a4c57e6aa2a60016e93b0adff02b9dd51601370d94f08d56307e319b19381274e032eb8bd80fffa4ecf5a8c601c3da9e17e38526a8860d981a7d471
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009-2017 Braintree, a division of PayPal, Inc.
1
+ Copyright (c) 2009-2020 Braintree, a division of PayPal, Inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
data/braintree.gemspec CHANGED
@@ -1,18 +1,24 @@
1
1
  $:.push File.expand_path("../lib", __FILE__)
2
- require 'braintree/version'
2
+ require "braintree/version"
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "braintree"
6
- s.summary = "Braintree Gateway Ruby Client Library"
7
- s.description = "Ruby library for integrating with the Braintree Gateway"
6
+ s.summary = "Braintree Ruby Server SDK"
7
+ s.description = "Resources and tools for developers to integrate Braintree's global payments platform."
8
8
  s.version = Braintree::Version::String
9
9
  s.license = "MIT"
10
10
  s.author = "Braintree"
11
11
  s.email = "code@getbraintree.com"
12
- s.homepage = "http://www.braintreepayments.com/"
13
- s.rubyforge_project = "braintree"
14
- s.has_rdoc = false
12
+ s.homepage = "https://www.braintreepayments.com/"
15
13
  s.files = Dir.glob ["README.rdoc", "LICENSE", "lib/**/*.{rb,crt}", "spec/**/*", "*.gemspec"]
16
- s.add_dependency "builder", ">= 2.0.0"
14
+ s.add_dependency "builder", ">= 3.2.4"
15
+ s.add_dependency "rexml", ">= 3.1.9" # Use rexml version associated with minimum supported Ruby version
16
+ s.required_ruby_version = ">=2.6.0"
17
+ s.metadata = {
18
+ "bug_tracker_uri" => "https://github.com/braintree/braintree_ruby/issues",
19
+ "changelog_uri" => "https://github.com/braintree/braintree_ruby/blob/master/CHANGELOG.md",
20
+ "source_code_uri" => "https://github.com/braintree/braintree_ruby",
21
+ "documentation_uri" => "https://developer.paypal.com/braintree/docs"
22
+ }
17
23
  end
18
24
 
@@ -2,13 +2,13 @@ module Braintree
2
2
  class AccountUpdaterDailyReport # :nodoc:
3
3
  include BaseModule
4
4
 
5
- attr_reader :report_url
6
5
  attr_reader :report_date
6
+ attr_reader :report_url
7
7
 
8
8
  class << self
9
9
  protected :new
10
10
  def _new(*args) # :nodoc:
11
- self.new *args
11
+ self.new(*args)
12
12
  end
13
13
  end
14
14
 
@@ -2,7 +2,8 @@ module Braintree
2
2
  class AchMandate
3
3
  include BaseModule # :nodoc:
4
4
 
5
- attr_reader :text, :accepted_at
5
+ attr_reader :accepted_at
6
+ attr_reader :text
6
7
 
7
8
  def initialize(attributes)
8
9
  set_instance_variables_from_hash(attributes)
@@ -29,6 +29,7 @@ module Braintree
29
29
  ["Bermuda", "BM", "BMU", "060"],
30
30
  ["Bhutan", "BT", "BTN", "064"],
31
31
  ["Bolivia", "BO", "BOL", "068"],
32
+ ["Bonaire, Sint Eustatius and Saba", "BQ", "BES", "535"],
32
33
  ["Bosnia and Herzegovina", "BA", "BIH", "070"],
33
34
  ["Botswana", "BW", "BWA", "072"],
34
35
  ["Bouvet Island", "BV", "BVT", "074"],
@@ -58,6 +59,7 @@ module Braintree
58
59
  ["Côte d'Ivoire", "CI", "CIV", "384"],
59
60
  ["Croatia", "HR", "HRV", "191"],
60
61
  ["Cuba", "CU", "CUB", "192"],
62
+ ["Curaçao", "CW", "CUW", "531"],
61
63
  ["Cyprus", "CY", "CYP", "196"],
62
64
  ["Czech Republic", "CZ", "CZE", "203"],
63
65
  ["Denmark", "DK", "DNK", "208"],
@@ -156,7 +158,6 @@ module Braintree
156
158
  ["Nauru", "NR", "NRU", "520"],
157
159
  ["Nepal", "NP", "NPL", "524"],
158
160
  ["Netherlands", "NL", "NLD", "528"],
159
- ["Netherlands Antilles", "AN", "ANT", "530"],
160
161
  ["New Caledonia", "NC", "NCL", "540"],
161
162
  ["New Zealand", "NZ", "NZL", "554"],
162
163
  ["Nicaragua", "NI", "NIC", "558"],
@@ -200,12 +201,14 @@ module Braintree
200
201
  ["Seychelles", "SC", "SYC", "690"],
201
202
  ["Sierra Leone", "SL", "SLE", "694"],
202
203
  ["Singapore", "SG", "SGP", "702"],
204
+ ["Sint Maarten (Dutch part)", "SX", "SXM", "534"],
203
205
  ["Slovakia", "SK", "SVK", "703"],
204
206
  ["Slovenia", "SI", "SVN", "705"],
205
207
  ["Solomon Islands", "SB", "SLB", "090"],
206
208
  ["Somalia", "SO", "SOM", "706"],
207
209
  ["South Africa", "ZA", "ZAF", "710"],
208
210
  ["South Georgia and South Sandwich Islands", "GS", "SGS", "239"],
211
+ ["South Sudan", "SS", "SSD", "728"],
209
212
  ["Spain", "ES", "ESP", "724"],
210
213
  ["Sri Lanka", "LK", "LKA", "144"],
211
214
  ["Sudan", "SD", "SDN", "736"],
@@ -2,32 +2,46 @@ module Braintree
2
2
  class Address
3
3
  include BaseModule # :nodoc:
4
4
 
5
- attr_reader :company, :country_name, :created_at, :customer_id, :extended_address, :first_name, :id,
6
- :last_name, :locality, :postal_code, :region, :street_address, :updated_at,
7
- :country_code_alpha2, :country_code_alpha3, :country_code_numeric
5
+ attr_reader :company
6
+ attr_reader :country_code_alpha2
7
+ attr_reader :country_code_alpha3
8
+ attr_reader :country_code_numeric
9
+ attr_reader :country_name
10
+ attr_reader :created_at
11
+ attr_reader :customer_id
12
+ attr_reader :extended_address
13
+ attr_reader :first_name
14
+ attr_reader :id
15
+ attr_reader :last_name
16
+ attr_reader :locality
17
+ attr_reader :phone_number
18
+ attr_reader :postal_code
19
+ attr_reader :region
20
+ attr_reader :street_address
21
+ attr_reader :updated_at
8
22
 
9
- def self.create(attributes)
10
- Configuration.gateway.address.create(attributes)
23
+ def self.create(*args)
24
+ Configuration.gateway.address.create(*args)
11
25
  end
12
26
 
13
- def self.create!(attributes)
14
- return_object_or_raise(:address) { create(attributes) }
27
+ def self.create!(*args)
28
+ Configuration.gateway.address.create!(*args)
15
29
  end
16
30
 
17
- def self.delete(customer_or_customer_id, address_id)
18
- Configuration.gateway.address.delete(customer_or_customer_id, address_id)
31
+ def self.delete(*args)
32
+ Configuration.gateway.address.delete(*args)
19
33
  end
20
34
 
21
- def self.find(customer_or_customer_id, address_id)
22
- Configuration.gateway.address.find(customer_or_customer_id, address_id)
35
+ def self.find(*args)
36
+ Configuration.gateway.address.find(*args)
23
37
  end
24
38
 
25
- def self.update(customer_or_customer_id, address_id, attributes)
26
- Configuration.gateway.address.update(customer_or_customer_id, address_id, attributes)
39
+ def self.update(*args)
40
+ Configuration.gateway.address.update(*args)
27
41
  end
28
42
 
29
- def self.update!(customer_or_customer_id, address_id, attributes)
30
- return_object_or_raise(:address) { update(customer_or_customer_id, address_id, attributes) }
43
+ def self.update!(*args)
44
+ Configuration.gateway.address.update!(*args)
31
45
  end
32
46
 
33
47
  def initialize(gateway, attributes) # :nodoc:
@@ -40,34 +54,12 @@ module Braintree
40
54
  id == other.id && customer_id == other.customer_id
41
55
  end
42
56
 
43
- # Deprecated. Use Braintree::Address.delete
44
- def delete
45
- warn "[DEPRECATED] delete as an instance method is deprecated. Please use Address.delete"
46
- @gateway.address.delete(customer_id, self.id)
47
- end
48
-
49
- # Deprecated. Use Braintree::Address.update
50
- def update(attributes)
51
- warn "[DEPRECATED] update as an instance method is deprecated. Please use Address.update"
52
- result = @gateway.address.update(customer_id, id, attributes)
53
- if result.success?
54
- copy_instance_variables_from_object result.address
55
- end
56
- result
57
- end
58
-
59
- # Deprecated. Use Braintree::Address.update!
60
- def update!(attributes)
61
- warn "[DEPRECATED] update! as an instance method is deprecated. Please use Address.update!"
62
- return_object_or_raise(:address) { update(attributes) }
63
- end
64
-
65
57
  class << self
66
58
  protected :new
67
59
  end
68
60
 
69
61
  def self._new(*args) # :nodoc:
70
- self.new *args
62
+ self.new(*args)
71
63
  end
72
64
  end
73
65
  end
@@ -1,5 +1,7 @@
1
1
  module Braintree
2
2
  class AddressGateway # :nodoc
3
+ include BaseModule
4
+
3
5
  def initialize(gateway)
4
6
  @gateway = gateway
5
7
  @config = gateway.config
@@ -24,6 +26,10 @@ module Braintree
24
26
  end
25
27
  end
26
28
 
29
+ def create!(*args)
30
+ return_object_or_raise(:address) { create(*args) }
31
+ end
32
+
27
33
  def delete(customer_or_customer_id, address_id)
28
34
  customer_id = _determine_customer_id(customer_or_customer_id)
29
35
  @config.http.delete("#{@config.base_merchant_path}/customers/#{customer_id}/addresses/#{address_id}")
@@ -52,6 +58,10 @@ module Braintree
52
58
  end
53
59
  end
54
60
 
61
+ def update!(*args)
62
+ return_object_or_raise(:address) { update(*args) }
63
+ end
64
+
55
65
  def _determine_customer_id(customer_or_customer_id) # :nodoc:
56
66
  customer_id = customer_or_customer_id.is_a?(Customer) ? customer_or_customer_id.id : customer_or_customer_id
57
67
  unless customer_id =~ /\A[\w_-]+\z/
@@ -66,8 +76,8 @@ module Braintree
66
76
 
67
77
  def self._shared_signature # :nodoc:
68
78
  [:company, :country_code_alpha2, :country_code_alpha3, :country_code_numeric,
69
- :country_name, :extended_address, :first_name,
70
- :last_name, :locality, :postal_code, :region, :street_address]
79
+ :country_name, :extended_address, :first_name, :last_name, :locality, :phone_number,
80
+ :postal_code, :region, :street_address]
71
81
  end
72
82
 
73
83
  def self._update_signature # :nodoc:
@@ -62,6 +62,10 @@ module Braintree
62
62
  end
63
63
  end
64
64
 
65
+ class EndsWithNode < SearchNode # :nodoc:
66
+ operators :ends_with
67
+ end
68
+
65
69
  class MultipleValueOrTextNode < MultipleValueNode
66
70
  extend Forwardable
67
71
  def_delegators :@text_node, :contains, :ends_with, :is, :is_not, :starts_with
@@ -129,6 +133,10 @@ module Braintree
129
133
  _create_field_accessors(fields, DateRangeNode)
130
134
  end
131
135
 
136
+ def self.ends_with_fields(*fields)
137
+ _create_field_accessors(fields, EndsWithNode)
138
+ end
139
+
132
140
  def self._create_field_accessors(fields, node_class)
133
141
  fields.each do |field|
134
142
  define_method(field) do |*args|
@@ -0,0 +1,29 @@
1
+ module Braintree
2
+ class ApplePay
3
+ include BaseModule # :nodoc:
4
+
5
+ def initialize(gateway, attributes) # :nodoc:
6
+ set_instance_variables_from_hash(attributes)
7
+ end
8
+
9
+ class << self
10
+ protected :new
11
+ end
12
+
13
+ def self._new(*args) # :nodoc:
14
+ self.new(*args)
15
+ end
16
+
17
+ def self.register_domain(domain)
18
+ Configuration.gateway.apple_pay.register_domain(domain)
19
+ end
20
+
21
+ def self.unregister_domain(domain)
22
+ Configuration.gateway.apple_pay.unregister_domain(domain)
23
+ end
24
+
25
+ def self.registered_domains
26
+ Configuration.gateway.apple_pay.registered_domains
27
+ end
28
+ end
29
+ end
@@ -10,13 +10,37 @@ module Braintree
10
10
  All = constants.map { |c| const_get(c) }
11
11
  end
12
12
 
13
- attr_reader :card_type, :created_at, :customer_id, :default, :expiration_month,
14
- :expiration_year, :expired, :image_url, :last_4, :payment_instrument_name,
15
- :source_description, :subscriptions, :token, :updated_at
13
+ attr_reader :billing_address
14
+ attr_reader :bin
15
+ attr_reader :card_type
16
+ attr_reader :cardholder_name
17
+ attr_reader :commercial
18
+ attr_reader :country_of_issuance
19
+ attr_reader :created_at
20
+ attr_reader :customer_id
21
+ attr_reader :debit
22
+ attr_reader :default
23
+ attr_reader :durbin_regulated
24
+ attr_reader :expiration_month
25
+ attr_reader :expiration_year
26
+ attr_reader :expired
27
+ attr_reader :healthcare
28
+ attr_reader :image_url
29
+ attr_reader :issuing_bank
30
+ attr_reader :last_4
31
+ attr_reader :payment_instrument_name
32
+ attr_reader :payroll
33
+ attr_reader :prepaid
34
+ attr_reader :product_id
35
+ attr_reader :source_description
36
+ attr_reader :subscriptions
37
+ attr_reader :token
38
+ attr_reader :updated_at
16
39
 
17
40
  def initialize(gateway, attributes) # :nodoc:
18
41
  @gateway = gateway
19
42
  set_instance_variables_from_hash(attributes)
43
+ @billing_address = attributes[:billing_address] ? Address._new(@gateway, attributes[:billing_address]) : nil
20
44
  @subscriptions = (@subscriptions || []).map { |subscription_hash| Subscription._new(@gateway, subscription_hash) }
21
45
  end
22
46
 
@@ -33,7 +57,7 @@ module Braintree
33
57
  end
34
58
 
35
59
  def self._new(*args) # :nodoc:
36
- self.new *args
60
+ self.new(*args)
37
61
  end
38
62
  end
39
63
  end
@@ -0,0 +1,37 @@
1
+ module Braintree
2
+ class ApplePayGateway
3
+ def initialize(gateway)
4
+ @gateway = gateway
5
+ @config = gateway.config
6
+ end
7
+
8
+ def register_domain(domain)
9
+ response = @config.http.post("#{@config.base_merchant_path}/processing/apple_pay/validate_domains", :url => domain)
10
+
11
+ if response.has_key?(:response) && response[:response][:success]
12
+ Braintree::SuccessfulResult.new
13
+ elsif response[:api_error_response]
14
+ ErrorResult.new(@gateway, response[:api_error_response])
15
+ else
16
+ raise "expected :response or :api_error_response"
17
+ end
18
+ end
19
+
20
+ def unregister_domain(domain)
21
+ @config.http.delete("#{@config.base_merchant_path}/processing/apple_pay/unregister_domain", :url => CGI.escape(domain))
22
+ SuccessfulResult.new
23
+ end
24
+
25
+ def registered_domains
26
+ response = @config.http.get("#{@config.base_merchant_path}/processing/apple_pay/registered_domains")
27
+
28
+ if response.has_key?(:response)
29
+ Braintree::SuccessfulResult.new(:apple_pay_options => ApplePayOptions._new(response[:response]))
30
+ elsif response[:api_error_response]
31
+ ErrorResult.new(@gateway, response[:api_error_response])
32
+ else
33
+ raise "expected :response or :api_error_response"
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,19 @@
1
+ module Braintree
2
+ class ApplePayOptions
3
+ include BaseModule # :nodoc:
4
+
5
+ attr_reader :domains
6
+
7
+ def initialize(attributes) # :nodoc:
8
+ set_instance_variables_from_hash(attributes)
9
+ end
10
+
11
+ class << self
12
+ protected :new
13
+ end
14
+
15
+ def self._new(*args) # :nodoc:
16
+ self.new(*args)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,23 @@
1
+ module Braintree
2
+ class AuthorizationAdjustment # :nodoc:
3
+ include BaseModule
4
+
5
+ attr_reader :amount
6
+ attr_reader :success
7
+ attr_reader :timestamp
8
+ attr_reader :processor_response_code
9
+ attr_reader :processor_response_text
10
+ attr_reader :processor_response_type
11
+
12
+ class << self
13
+ protected :new
14
+ def _new(*args) # :nodoc:
15
+ self.new(*args)
16
+ end
17
+ end
18
+
19
+ def initialize(attributes) # :nodoc:
20
+ set_instance_variables_from_hash(attributes)
21
+ end
22
+ end
23
+ end
@@ -18,6 +18,16 @@ module Braintree
18
18
 
19
19
  def set_instance_variables_from_hash(hash)
20
20
  hash.each do |key, value|
21
+ if key == :global_id
22
+ instance_variable_set "@graphql_id", value
23
+ elsif key == :android_pay_cards
24
+ instance_variable_set "@google_pay_cards", value
25
+ elsif key == :android_pay_card
26
+ instance_variable_set "@google_pay_card", value
27
+ elsif key == :android_pay_details
28
+ instance_variable_set "@google_pay_details", value
29
+ end
30
+
21
31
  instance_variable_set "@#{key}", value
22
32
  end
23
33
  end
@@ -0,0 +1,33 @@
1
+ module Braintree
2
+ class BinData # :nodoc:
3
+ include BaseModule
4
+
5
+ attr_reader :commercial
6
+ attr_reader :country_of_issuance
7
+ attr_reader :debit
8
+ attr_reader :durbin_regulated
9
+ attr_reader :healthcare
10
+ attr_reader :issuing_bank
11
+ attr_reader :payroll
12
+ attr_reader :prepaid
13
+ attr_reader :product_id
14
+
15
+ def initialize(attributes)
16
+ set_instance_variables_from_hash attributes unless attributes.nil?
17
+ end
18
+
19
+ def inspect
20
+ formatted_attributes = self.class._attributes.map do |attr|
21
+ "#{attr}: #{send(attr).inspect}"
22
+ end
23
+ "#<#{self.class} #{formatted_attributes.join(", ")}>"
24
+ end
25
+
26
+ def self._attributes # :nodoc:
27
+ [
28
+ :commercial, :country_of_issuance, :debit, :durbin_regulated, :healthcare,
29
+ :issuing_bank, :payroll, :prepaid, :product_id
30
+ ]
31
+ end
32
+ end
33
+ end
@@ -1,11 +1,11 @@
1
- require 'json'
1
+ require "json"
2
2
 
3
3
  module Braintree
4
4
  module ClientToken
5
5
  DEFAULT_VERSION = 2
6
6
 
7
- def self.generate(options={})
8
- Configuration.gateway.client_token.generate(options)
7
+ def self.generate(*args)
8
+ Configuration.gateway.client_token.generate(*args)
9
9
  end
10
10
  end
11
11
  end
@@ -1,5 +1,7 @@
1
1
  module Braintree
2
2
  class ClientTokenGateway
3
+ include BaseModule
4
+
3
5
  def initialize(gateway)
4
6
  @gateway = gateway
5
7
  @config = gateway.config
@@ -26,7 +28,7 @@ module Braintree
26
28
  def self._generate_signature # :nodoc:
27
29
  [
28
30
  :address_id, :customer_id, :proxy_merchant_id, :merchant_account_id,
29
- :version, :sepa_mandate_acceptance_location, :sepa_mandate_type,
31
+ :version,
30
32
  {:options => [:make_default, :verify_card, :fail_on_duplicate_payment_method]}
31
33
  ]
32
34
  end