fat_zebra 3.1.0 → 3.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +2 -0
  3. data/.travis.yml +2 -1
  4. data/README.md +5 -5
  5. data/fat_zebra.gemspec +4 -6
  6. data/lib/fat_zebra.rb +8 -0
  7. data/lib/fat_zebra/authenticate.rb +64 -0
  8. data/lib/fat_zebra/card.rb +1 -0
  9. data/lib/fat_zebra/paypal/authorization.rb +49 -0
  10. data/lib/fat_zebra/paypal/billing_agreement.rb +56 -0
  11. data/lib/fat_zebra/paypal/capture.rb +36 -0
  12. data/lib/fat_zebra/paypal/order.rb +22 -0
  13. data/lib/fat_zebra/paypal/refund.rb +22 -0
  14. data/lib/fat_zebra/purchase.rb +23 -0
  15. data/lib/fat_zebra/util.rb +1 -1
  16. data/lib/fat_zebra/version.rb +1 -1
  17. data/spec/cassettes/FatZebra_Authenticate/_authenticate/validations/1_3_5_1.yml +46 -0
  18. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_1.yml +90 -0
  19. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_challenge_response/1_3_3_2.yml +90 -0
  20. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_1.yml +90 -0
  21. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_frictionless_response/1_3_2_2.yml +90 -0
  22. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_1.yml +90 -0
  23. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_2.yml +87 -0
  24. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_3.yml +92 -0
  25. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_invalid_input/1_3_1_4.yml +91 -0
  26. data/spec/cassettes/FatZebra_Authenticate/_authenticate/with_type_validation/1_3_4_1.yml +46 -0
  27. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_invalid/returns_error_when_invalid_token.yml +47 -0
  28. data/spec/cassettes/FatZebra_Authenticate/_decode_session/when_token_is_valid/decodes_JWT.yml +87 -0
  29. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_given_params.yml +44 -0
  30. data/spec/cassettes/FatZebra_Authenticate/_session/returns_JWT_with_no_amount.yml +44 -0
  31. data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_amount_is_invalid.yml +44 -0
  32. data/spec/cassettes/FatZebra_Authenticate/_session/returns_error_when_currency_is_invalid.yml +46 -0
  33. data/spec/cassettes/FatZebra_BankAccount/_create/1_1_1.yml +8 -14
  34. data/spec/cassettes/FatZebra_BankAccount/_create/1_1_2.yml +8 -14
  35. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_1.yml +30 -30
  36. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_2.yml +30 -30
  37. data/spec/cassettes/FatZebra_BankAccount/_search/1_2_3.yml +30 -30
  38. data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_1.yml +11 -17
  39. data/spec/cassettes/FatZebra_Batch/_create/with_file/1_1_1_2.yml +11 -17
  40. data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_1.yml +11 -17
  41. data/spec/cassettes/FatZebra_Batch/_create/with_path/1_1_2_2.yml +11 -17
  42. data/spec/cassettes/FatZebra_Batch/_find/1_2_1.yml +19 -31
  43. data/spec/cassettes/FatZebra_Batch/_find/1_2_2.yml +19 -31
  44. data/spec/cassettes/FatZebra_Batch/_result/1_4_1.yml +26 -44
  45. data/spec/cassettes/FatZebra_Batch/_search/1_3_1.yml +6 -6
  46. data/spec/cassettes/FatZebra_Batch/_search/1_3_2.yml +6 -6
  47. data/spec/cassettes/FatZebra_Batch/_search/1_3_3.yml +6 -6
  48. data/spec/cassettes/FatZebra_Card/_create/1_1_1.yml +7 -13
  49. data/spec/cassettes/FatZebra_Card/_create/1_1_2.yml +7 -13
  50. data/spec/cassettes/FatZebra_Card/_create/1_1_3.yml +7 -13
  51. data/spec/cassettes/FatZebra_Card/_create/1_1_4.yml +7 -13
  52. data/spec/cassettes/FatZebra_Card/_create/1_1_5.yml +7 -13
  53. data/spec/cassettes/FatZebra_Card/_create/1_1_6.yml +7 -13
  54. data/spec/cassettes/FatZebra_Card/_find/1_3_1.yml +111 -0
  55. data/spec/cassettes/FatZebra_Card/_find/1_3_2.yml +111 -0
  56. data/spec/cassettes/FatZebra_Card/_update/1_2_1.yml +15 -27
  57. data/spec/cassettes/FatZebra_Card/_update/1_2_2.yml +15 -27
  58. data/spec/cassettes/FatZebra_Card/_update/1_2_3.yml +15 -27
  59. data/spec/cassettes/FatZebra_Card/_update/validations/1_2_4_1.yml +7 -13
  60. data/spec/cassettes/FatZebra_Customer/_create/1_1_1.yml +9 -15
  61. data/spec/cassettes/FatZebra_Customer/_create/1_1_2.yml +9 -15
  62. data/spec/cassettes/FatZebra_Customer/_create/1_1_3.yml +9 -15
  63. data/spec/cassettes/FatZebra_Customer/_create/1_1_4.yml +9 -15
  64. data/spec/cassettes/FatZebra_Customer/_create/1_1_5.yml +9 -15
  65. data/spec/cassettes/FatZebra_Customer/_create/1_1_6.yml +9 -15
  66. data/spec/cassettes/FatZebra_Customer/_delete/1_5_1.yml +18 -30
  67. data/spec/cassettes/FatZebra_Customer/_find/1_3_1.yml +18 -30
  68. data/spec/cassettes/FatZebra_Customer/_find/1_3_2.yml +18 -30
  69. data/spec/cassettes/FatZebra_Customer/_search/1_2_1.yml +12 -16
  70. data/spec/cassettes/FatZebra_Customer/_search/1_2_2.yml +12 -16
  71. data/spec/cassettes/FatZebra_Customer/_search/1_2_3.yml +12 -16
  72. data/spec/cassettes/FatZebra_Customer/_update/1_4_1.yml +19 -31
  73. data/spec/cassettes/FatZebra_Customer/_update/1_4_2.yml +19 -31
  74. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_1.yml +8 -14
  75. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_2.yml +8 -14
  76. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_3.yml +8 -14
  77. data/spec/cassettes/FatZebra_DirectCredit/_create/1_1_4.yml +8 -14
  78. data/spec/cassettes/FatZebra_DirectCredit/_create/validations/valid/1_1_5_1_1.yml +7 -13
  79. data/spec/cassettes/FatZebra_DirectCredit/_delete/1_4_1.yml +16 -28
  80. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_1.yml +16 -28
  81. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_2.yml +16 -28
  82. data/spec/cassettes/FatZebra_DirectCredit/_find/1_2_3.yml +13 -13
  83. data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_1.yml +20 -20
  84. data/spec/cassettes/FatZebra_DirectCredit/_search/1_3_2.yml +20 -20
  85. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_1.yml +8 -14
  86. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_2.yml +8 -14
  87. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_3.yml +8 -14
  88. data/spec/cassettes/FatZebra_DirectDebit/_create/1_1_4.yml +8 -14
  89. data/spec/cassettes/FatZebra_DirectDebit/_create/validations/valid/1_1_5_1_1.yml +7 -13
  90. data/spec/cassettes/FatZebra_DirectDebit/_delete/1_4_1.yml +16 -28
  91. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_1.yml +16 -28
  92. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_2.yml +16 -28
  93. data/spec/cassettes/FatZebra_DirectDebit/_find/1_2_3.yml +13 -13
  94. data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_1.yml +20 -20
  95. data/spec/cassettes/FatZebra_DirectDebit/_search/1_3_2.yml +20 -20
  96. data/spec/cassettes/FatZebra_Information/_ping/1_1_1.yml +7 -13
  97. data/spec/cassettes/FatZebra_Information/_ping/1_1_2.yml +7 -13
  98. data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_1.yml +48 -48
  99. data/spec/cassettes/FatZebra_PaymentPlan/_active_/1_8_2.yml +48 -48
  100. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_1.yml +20 -20
  101. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_2.yml +20 -20
  102. data/spec/cassettes/FatZebra_PaymentPlan/_create/1_1_3.yml +20 -20
  103. data/spec/cassettes/FatZebra_PaymentPlan/_delete/1_5_1.yml +28 -28
  104. data/spec/cassettes/FatZebra_PaymentPlan/_destroy/1_6_1.yml +28 -28
  105. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_1.yml +32 -32
  106. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_2.yml +32 -32
  107. data/spec/cassettes/FatZebra_PaymentPlan/_find/1_2_3.yml +32 -32
  108. data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_1.yml +34 -34
  109. data/spec/cassettes/FatZebra_PaymentPlan/_suspend_/1_7_2.yml +34 -34
  110. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_1.yml +28 -28
  111. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_2.yml +28 -28
  112. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_3_3.yml +28 -28
  113. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_1.yml +34 -34
  114. data/spec/cassettes/FatZebra_PaymentPlan/_update/1_4_2.yml +34 -34
  115. data/spec/cassettes/FatZebra_Paypal_Authorization/_capture/returns_a_new_capture_record.yml +45 -0
  116. data/spec/cassettes/FatZebra_Paypal_Authorization/_find/when_found/returns_authorization.yml +46 -0
  117. data/spec/cassettes/FatZebra_Paypal_Authorization/_search/with_date_filter/returns_records_created_after_start_date.yml +46 -0
  118. data/spec/cassettes/FatZebra_Paypal_Authorization/_void/returns_a_voided_capture_record.yml +44 -0
  119. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_charge/Valid_payload/returns_a_new_order_record.yml +48 -0
  120. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_find/when_found/returns_billing_agreement.yml +48 -0
  121. data/spec/cassettes/FatZebra_Paypal_BillingAgreement/_search/with_date_filter/returns_records_created_after_start_date.yml +48 -0
  122. data/spec/cassettes/FatZebra_Paypal_Capture/_find/when_found/returns_capture.yml +47 -0
  123. data/spec/cassettes/FatZebra_Paypal_Capture/_refund/returns_a_new_refund_record.yml +45 -0
  124. data/spec/cassettes/FatZebra_Paypal_Capture/_search/with_date_filter/returns_records_created_after_start_date.yml +49 -0
  125. data/spec/cassettes/FatZebra_Paypal_Order/_find/when_found/returns_order.yml +48 -0
  126. data/spec/cassettes/FatZebra_Paypal_Order/_search/with_date_filter/returns_orders_created_after_start_date.yml +55 -0
  127. data/spec/cassettes/FatZebra_Paypal_Refund/_find/when_found/returns_refund.yml +47 -0
  128. data/spec/cassettes/FatZebra_Paypal_Refund/_search/with_date_filter/returns_all_refund_records_created_after_start_date.yml +50 -0
  129. data/spec/cassettes/FatZebra_Purchase/_create/1_1_1.yml +9 -15
  130. data/spec/cassettes/FatZebra_Purchase/_create/1_1_10.yml +9 -15
  131. data/spec/cassettes/FatZebra_Purchase/_create/1_1_11.yml +9 -15
  132. data/spec/cassettes/FatZebra_Purchase/_create/1_1_12.yml +9 -15
  133. data/spec/cassettes/FatZebra_Purchase/_create/1_1_13.yml +9 -15
  134. data/spec/cassettes/FatZebra_Purchase/_create/1_1_2.yml +9 -15
  135. data/spec/cassettes/FatZebra_Purchase/_create/1_1_3.yml +9 -15
  136. data/spec/cassettes/FatZebra_Purchase/_create/1_1_4.yml +9 -15
  137. data/spec/cassettes/FatZebra_Purchase/_create/1_1_5.yml +9 -15
  138. data/spec/cassettes/FatZebra_Purchase/_create/1_1_6.yml +9 -15
  139. data/spec/cassettes/FatZebra_Purchase/_create/1_1_7.yml +9 -15
  140. data/spec/cassettes/FatZebra_Purchase/_create/1_1_8.yml +9 -15
  141. data/spec/cassettes/FatZebra_Purchase/_create/1_1_9.yml +9 -15
  142. data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_1.yml +11 -17
  143. data/spec/cassettes/FatZebra_Purchase/_create/bad_request/1_1_14_2.yml +11 -17
  144. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_1.yml +109 -0
  145. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_2.yml +109 -0
  146. data/spec/cassettes/FatZebra_Purchase/_extend_/1_9_3.yml +109 -0
  147. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_1.yml +109 -0
  148. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_2.yml +109 -0
  149. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_3.yml +109 -0
  150. data/spec/cassettes/FatZebra_Purchase/_increment/1_10_4.yml +109 -0
  151. data/spec/cassettes/FatZebra_Purchase/_void/1_6_1.yml +18 -30
  152. data/spec/cassettes/FatZebra_Purchase/_void/1_6_2.yml +18 -30
  153. data/spec/cassettes/FatZebra_Purchase/_void/1_6_3.yml +18 -30
  154. data/spec/cassettes/FatZebra_Purchase/_void/1_6_4.yml +18 -30
  155. data/spec/cassettes/FatZebra_Purchase/_void/1_7_1.yml +18 -30
  156. data/spec/cassettes/FatZebra_Purchase/_void/1_7_2.yml +18 -30
  157. data/spec/cassettes/FatZebra_Purchase/_void/1_7_3.yml +18 -30
  158. data/spec/cassettes/FatZebra_Purchase/_void/1_7_4.yml +18 -30
  159. data/spec/cassettes/FatZebra_Refund/_create/1_1_1.yml +16 -16
  160. data/spec/cassettes/FatZebra_Refund/_create/1_1_10.yml +16 -16
  161. data/spec/cassettes/FatZebra_Refund/_create/1_1_2.yml +16 -16
  162. data/spec/cassettes/FatZebra_Refund/_create/1_1_3.yml +16 -16
  163. data/spec/cassettes/FatZebra_Refund/_create/1_1_4.yml +16 -16
  164. data/spec/cassettes/FatZebra_Refund/_create/1_1_5.yml +16 -16
  165. data/spec/cassettes/FatZebra_Refund/_create/1_1_6.yml +16 -16
  166. data/spec/cassettes/FatZebra_Refund/_create/1_1_7.yml +16 -16
  167. data/spec/cassettes/FatZebra_Refund/_create/1_1_8.yml +16 -16
  168. data/spec/cassettes/FatZebra_Refund/_create/1_1_9.yml +16 -16
  169. data/spec/cassettes/FatZebra_Refund/_find/1_2_1.yml +24 -24
  170. data/spec/cassettes/FatZebra_Refund/_find/1_2_2.yml +24 -24
  171. data/spec/cassettes/FatZebra_Refund/_find/1_2_3.yml +24 -24
  172. data/spec/cassettes/FatZebra_Refund/_search/responds_with_the_newly-created_refunds.yml +40 -40
  173. data/spec/cassettes/FatZebra_Refund/_void/1_4_1.yml +24 -24
  174. data/spec/cassettes/FatZebra_Refund/_void/1_4_2.yml +24 -24
  175. data/spec/cassettes/FatZebra_Refund/_void/1_4_3.yml +24 -24
  176. data/spec/cassettes/FatZebra_Refund/_void/1_4_4.yml +24 -24
  177. data/spec/cassettes/FatZebra_WebHook/_create/1_1_1.yml +7 -13
  178. data/spec/cassettes/FatZebra_WebHook/_create/1_1_2.yml +7 -13
  179. data/spec/cassettes/FatZebra_WebHook/_create/1_1_3.yml +7 -13
  180. data/spec/cassettes/FatZebra_WebHook/_delete/1_4_1.yml +15 -27
  181. data/spec/cassettes/FatZebra_WebHook/_search/1_2_1.yml +160 -133
  182. data/spec/cassettes/FatZebra_WebHook/_search/1_2_2.yml +162 -135
  183. data/spec/cassettes/FatZebra_WebHook/_update/1_3_1.yml +15 -27
  184. data/spec/cassettes/FatZebra_WebHook/_update/1_3_2.yml +15 -27
  185. data/spec/lib/fat_zebra/authenticate_spec.rb +187 -0
  186. data/spec/lib/fat_zebra/card_spec.rb +8 -0
  187. data/spec/lib/fat_zebra/paypal/authorization_spec.rb +79 -0
  188. data/spec/lib/fat_zebra/paypal/billing_agreement_spec.rb +62 -0
  189. data/spec/lib/fat_zebra/paypal/capture_spec.rb +60 -0
  190. data/spec/lib/fat_zebra/paypal/order_spec.rb +35 -0
  191. data/spec/lib/fat_zebra/paypal/refund_spec.rb +36 -0
  192. data/spec/lib/fat_zebra/purchase_spec.rb +21 -3
  193. data/spec/lib/fat_zebra/refund_spec.rb +1 -1
  194. data/spec/spec_helper.rb +0 -1
  195. data/spec/support/payloads.rb +135 -0
  196. metadata +61 -12
  197. data/spec/cassettes/FatZebra_DirectDebit/_create/validations/failed_with_non-float/1_1_5_3_1.yml +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fa90ecc2f14542b9afd815d07d056cbcc4568bb1
4
- data.tar.gz: 087a34525732fdccc0841212eae069af46a37728
2
+ SHA256:
3
+ metadata.gz: ce036c9eb7ff13fb1c6f60e6b0e4230299ccdb3384e4359959426d75c9a8e42b
4
+ data.tar.gz: b55070ec65cbbad8c82ed8974c572dc0cc9eae5d38b3d49a0446dd91febc1570
5
5
  SHA512:
6
- metadata.gz: 28366c271ee752e25f8f126c94874fe2f2fcccbc7cd30fa607c3ac4089cca41e1c0897e2918e6ff6325ed842365943aaeb2c0e862af4db8f8d8f3a1ccc67e4e2
7
- data.tar.gz: 59a415cf84ea85aec23991dc7c09235c58957f8e4b047da6c3e8dfa896189559f1531f27d8fc94b0fa94cfcdc94fc6a4773954b931ae9099896a1d23458e09e2
6
+ metadata.gz: 741c6e12a74bc6f05de8b1b04794476dd3dd1c711db11e093ccba35768e753657c5289d8151458140f8e582f971eb0d0876bd9240151df6ba97ac12b577f8e16
7
+ data.tar.gz: 9aee0585dd4f0addde3fbf1ce4408a8905ccf2c336994a9a46d4fd7b2dd6a0d11d1bf9b1c6a33af4f6148b790cfe097de5739f645395a269c684e34cc6e18b96
data/.gitignore CHANGED
@@ -4,3 +4,5 @@ Gemfile.lock
4
4
  pkg/*
5
5
  .yardoc
6
6
  doc/
7
+ .byebug_history
8
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,10 +1,11 @@
1
1
  cache: bundler
2
2
  language: ruby
3
3
  rvm:
4
- - 2.2
5
4
  - 2.3
6
5
  - 2.4
7
6
  - 2.5
7
+ - 2.6
8
+ - 2.7
8
9
  script:
9
10
  - bundle exec rspec spec
10
11
  - bundle exec rubocop
data/README.md CHANGED
@@ -3,14 +3,14 @@ Ruby API Library for Fat Zebra
3
3
 
4
4
  [![Build Status](https://travis-ci.org/fatzebra/Ruby-Library.svg?branch=master)](https://travis-ci.org/fatzebra/Ruby-Library)
5
5
 
6
- Release 3.1.0 for API version 1.0
6
+ Release 3.2.3 for API version 1.0
7
7
 
8
- A Ruby client for the [Fat Zebra](https://www.fatzebra.com.au) Online Payment Gateway (for Australian Merchants)
8
+ A Ruby client for the [Fat Zebra](https://www.fatzebra.com) Online Payment Gateway
9
9
 
10
10
  Dependencies
11
11
  ------------
12
12
 
13
- * Ruby (tested on 2.0, 2.1, 2.2, 2.3, 2.4)
13
+ * Ruby (tested on 2.3, 2.4, 2.5, 2.6)
14
14
  * Rest Client
15
15
 
16
16
  Installing
@@ -54,11 +54,11 @@ end
54
54
  Documentation
55
55
  -------------
56
56
 
57
- Full API reference can be found at http://docs.fatzebra.com.au
57
+ Full API reference can be found at http://docs.fatzebra.com
58
58
 
59
59
  Support
60
60
  -------
61
- If you have any issue with the Fat Zebra Ruby Client please contact us at support@fatzebra.com.au and we will be more then happy to help out. Alternatively you may raise an issue in github.
61
+ If you have any issue with the Fat Zebra Ruby Client please contact us at support@fatzebra.com and we will be more then happy to help out. Alternatively you may raise an issue in github.
62
62
 
63
63
  Pull Requests
64
64
  -------------
data/fat_zebra.gemspec CHANGED
@@ -6,19 +6,17 @@ require 'fat_zebra/version'
6
6
  Gem::Specification.new do |s|
7
7
  s.name = 'fat_zebra'
8
8
  s.version = FatZebra::VERSION
9
- s.authors = ['Matthew Savage']
10
- s.email = ['matt@amasses.net']
9
+ s.authors = ['Fat Zebra']
10
+ s.email = ['support@fatzebra.com']
11
11
  s.homepage = ''
12
12
  s.summary = 'Fat Zebra payments gem - integrate your ruby app with Fat Zebra'
13
- s.description = 'Provides integration with the Fat Zebra internet payment gateway (www.fatzebra.com.au), including purchase, refund, auth, capture and recurring billing functionality.'
14
-
15
- s.rubyforge_project = 'fat_zebra'
13
+ s.description = 'Provides integration with the Fat Zebra internet payment gateway (www.fatzebra.com), including purchase, refund, auth, capture and recurring billing functionality.'
16
14
 
17
15
  s.files = `git ls-files`.split("\n")
18
16
  s.test_files = `git ls-files -- {spec}/*`.split("\n")
19
17
  s.require_paths = %w[lib]
20
18
 
21
- s.add_development_dependency 'pry'
19
+ s.add_development_dependency 'byebug'
22
20
  s.add_development_dependency 'rake'
23
21
  s.add_development_dependency 'rspec', '~> 3.6'
24
22
  s.add_development_dependency 'rubocop', '~> 0.58.1'
data/lib/fat_zebra.rb CHANGED
@@ -28,6 +28,7 @@ require 'fat_zebra/api_operation/void'
28
28
  require 'fat_zebra/purchase'
29
29
  require 'fat_zebra/information'
30
30
  require 'fat_zebra/card'
31
+ require 'fat_zebra/authenticate'
31
32
  require 'fat_zebra/refund'
32
33
  require 'fat_zebra/payment_plan'
33
34
  require 'fat_zebra/customer'
@@ -37,6 +38,13 @@ require 'fat_zebra/bank_account'
37
38
  require 'fat_zebra/web_hook'
38
39
  require 'fat_zebra/batch'
39
40
 
41
+ # Paypal API Resources
42
+ require 'fat_zebra/paypal/billing_agreement'
43
+ require 'fat_zebra/paypal/order'
44
+ require 'fat_zebra/paypal/authorization'
45
+ require 'fat_zebra/paypal/capture'
46
+ require 'fat_zebra/paypal/refund'
47
+
40
48
  ##
41
49
  # Implementation of the FatZebra
42
50
  module FatZebra
@@ -0,0 +1,64 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Authenticate
4
+ #
5
+ # Manage 3DS2/SCA authentication for the API
6
+ #
7
+ # * session
8
+ # * authenticate
9
+ # * decode_session
10
+ #
11
+ class Authenticate < APIResource
12
+ @resource_name = 'authenticate'
13
+
14
+ validates :card_token, required: true, on: :authenticate
15
+ validates :sca, required: true, on: :authenticate
16
+ validates :token, required: true, on: :decode_session
17
+
18
+ class << self
19
+
20
+ ##
21
+ # Returns a JWT token for the 3DS authentication process
22
+ #
23
+ # @param [Hash] params
24
+ # @param [Hash] options for the request, and configurations (Optional)
25
+ #
26
+ # @return [FatZebra::Authenticate]
27
+ def session(params = {}, options = {})
28
+ valid!(params, :session) if respond_to?(:valid!)
29
+
30
+ response = request(:post, "#{resource_path}/session", params, options)
31
+ initialize_from(response)
32
+ end
33
+
34
+ ##
35
+ # Decodes a JWT token for the 3DS authentication process
36
+ #
37
+ # @param [Hash] params
38
+ # @param [Hash] options for the request, and configurations (Optional)
39
+ #
40
+ # @return [FatZebra::Authenticate]
41
+ def decode_session(params = {}, options = {})
42
+ valid!(params, :decode_session) if respond_to?(:valid!)
43
+
44
+ response = request(:get, "#{resource_path}/decode_session", params, options)
45
+ initialize_from(response)
46
+ end
47
+
48
+ ##
49
+ # Authenticates a 3ds request
50
+ #
51
+ # @param [Hash] params
52
+ # @param [Hash] options for the request, and configurations (Optional)
53
+ #
54
+ # @return [FatZebra::Authenticate]
55
+ def authenticate(params = {}, options = {})
56
+ valid!(params, :authenticate) if respond_to?(:valid!)
57
+
58
+ response = request(:post, resource_path, params, options)
59
+ initialize_from(response)
60
+ end
61
+ end
62
+
63
+ end
64
+ end
@@ -9,6 +9,7 @@ module FatZebra
9
9
  class Card < APIResource
10
10
  @resource_name = 'credit_cards'
11
11
 
12
+ include FatZebra::APIOperation::Find
12
13
  include FatZebra::APIOperation::Save
13
14
 
14
15
  validates :card_holder, required: { unless: %i[wallet] }, on: :create
@@ -0,0 +1,49 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Paypal::Authorization
4
+ #
5
+ # Manage PayPal Authorizations
6
+ #
7
+ # * search
8
+ # * find
9
+ # * capture
10
+ # * void
11
+ #
12
+ module Paypal
13
+ class Authorization < APIResource
14
+ include FatZebra::APIOperation::Find
15
+ include FatZebra::APIOperation::Search
16
+
17
+ class << self
18
+ def base_path
19
+ super + '/paypal/'
20
+ end
21
+
22
+ ##
23
+ # Capture a PayPal Authorization
24
+ #
25
+ # @param [String] Authorization id
26
+ # @param [Hash] params (amount, final_capture, note_to_payer)
27
+ # @param [Hash] options for the request, and configurations (Optional)
28
+ #
29
+ # @return [FatZebra::Paypal::Capture]
30
+ def capture(id, params = {}, options = {})
31
+ response = request(:post, resource_path("authorizations/#{id}/capture"), params, options)
32
+ FatZebra::Paypal::Capture.initialize_from(response)
33
+ end
34
+
35
+ ##
36
+ # Void a PayPal Authorization
37
+ #
38
+ # @param [String] Authorization id
39
+ # @param [Hash] options for the request, and configurations (Optional)
40
+ #
41
+ # @return [FatZebra::Authorization]
42
+ def void(id, options = {})
43
+ response = request(:post, resource_path("authorizations/#{id}/void"), {}, options)
44
+ initialize_from(response)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,56 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Paypal::BillingAgreement
4
+ #
5
+ # Manage PayPal Billing Agreements
6
+ #
7
+ # * search
8
+ # * find
9
+ # * charge
10
+ # * cancel
11
+ #
12
+ module Paypal
13
+ class BillingAgreement < APIResource
14
+ include FatZebra::APIOperation::Find
15
+ include FatZebra::APIOperation::Search
16
+
17
+ validates :purchases, required: true, on: :charge
18
+ validates :amount, required: true, on: :charge
19
+ validates :currency, required: true, on: :charge
20
+ validates :reference, required: true, on: :charge
21
+
22
+ class << self
23
+ def base_path
24
+ super + '/paypal/'
25
+ end
26
+
27
+ ##
28
+ # Charge a PayPal Billing Agreement
29
+ #
30
+ # @param [String] Billing Agreement id
31
+ # @param [Hash] params (currency, reference, amount, purchases)
32
+ # @param [Hash] options for the request, and configurations (Optional)
33
+ #
34
+ # @return [FatZebra::Paypal::Order]
35
+ def charge(id, params, options = {})
36
+ valid!(params, :charge) if respond_to?(:valid!)
37
+
38
+ response = request(:post, resource_path("billing_agreements/#{id}/charge"), params, options)
39
+ FatZebra::Paypal::Order.initialize_from(response)
40
+ end
41
+
42
+ ##
43
+ # Cancel a PayPal Billing Agreement
44
+ #
45
+ # @param [String] Billing Agreement id
46
+ # @param [Hash] options for the request, and configurations (Optional)
47
+ #
48
+ # @return [FatZebra::BillingAgreement]
49
+ def cancel(id, options = {})
50
+ response = request(:post, resource_path("billing_agreements/#{id}/cancel"), {}, options)
51
+ initialize_from(response)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,36 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Paypal::Capture
4
+ #
5
+ # Manage PayPal Captures
6
+ #
7
+ # * search
8
+ # * find
9
+ # * refund
10
+ #
11
+ module Paypal
12
+ class Capture < APIResource
13
+ include FatZebra::APIOperation::Find
14
+ include FatZebra::APIOperation::Search
15
+
16
+ class << self
17
+ def base_path
18
+ super + '/paypal/'
19
+ end
20
+
21
+ ##
22
+ # Refund a PayPal Capture
23
+ #
24
+ # @param [String] Capture id
25
+ # @param [Hash] params (amount, note_to_payer)
26
+ # @param [Hash] options for the request, and configurations (Optional)
27
+ #
28
+ # @return [FatZebra::Paypal::Refund]
29
+ def refund(id, params = {}, options = {})
30
+ response = request(:post, resource_path("captures/#{id}/refund"), params, options)
31
+ FatZebra::Paypal::Refund.initialize_from(response)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,22 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Paypal::Order
4
+ #
5
+ # Manage PayPal Orders
6
+ #
7
+ # * search
8
+ # * find
9
+ #
10
+ module Paypal
11
+ class Order < APIResource
12
+ include FatZebra::APIOperation::Find
13
+ include FatZebra::APIOperation::Search
14
+
15
+ class << self
16
+ def base_path
17
+ super + '/paypal/'
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module FatZebra
2
+ ##
3
+ # == FatZebra \Paypal::Refund
4
+ #
5
+ # Manage PayPal Refunds
6
+ #
7
+ # * search
8
+ # * find
9
+ #
10
+ module Paypal
11
+ class Refund < APIResource
12
+ include FatZebra::APIOperation::Find
13
+ include FatZebra::APIOperation::Search
14
+
15
+ class << self
16
+ def base_path
17
+ super + '/paypal/'
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -92,5 +92,28 @@ module FatZebra
92
92
  update_from(response)
93
93
  end
94
94
 
95
+ ##
96
+ # Extends an authorization expiry (if not already expired)
97
+ #
98
+ # @param [Hash] options for the request, and configurations (Optional)
99
+ #
100
+ # @return [Response] Purchase response object
101
+ def extend!(options = {})
102
+ response = request(:put, resource_path("purchases/#{id}"), { extend: true }, options)
103
+ update_from(response)
104
+ end
105
+
106
+ ##
107
+ # Increments an authorization amount
108
+ #
109
+ # @param [Int] amount to increment the authorization by
110
+ # @param [Hash] options for the request, and configurations (Optional)
111
+ #
112
+ # @return [Response] Purchase response object
113
+ def increment!(additional_amount, options = {})
114
+ raise ArgumentError, 'Amount must be a positive amount' unless additional_amount > 0
115
+ response = request(:put, resource_path("purchases/#{id}"), { amount: amount + additional_amount }, options)
116
+ update_from(response)
117
+ end
95
118
  end
96
119
  end
@@ -6,7 +6,7 @@ module FatZebra
6
6
  REGEXP_HTTP = %r{http[s]?\:\/\/}
7
7
 
8
8
  def cleanup_host(uri)
9
- uri.gsub(REGEXP_HTTP, '')
9
+ uri.to_s.gsub(REGEXP_HTTP, '')
10
10
  end
11
11
 
12
12
  ##
@@ -1,3 +1,3 @@
1
1
  module FatZebra
2
- VERSION = '3.1.0'.freeze
2
+ VERSION = '3.2.4'.freeze
3
3
  end
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://gateway.sandbox.fatzebra.com.au/v1.0/credit_cards
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"card_holder":"Matthew Savage","card_number":"5123456789012346","card_expiry":"02/2030","cvv":123,"test":true}'
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - application/json
14
+ User-Agent:
15
+ - Ruby
16
+ Authorization:
17
+ - Basic VEVTVDpURVNU
18
+ Content-Type:
19
+ - application/json
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Cache-Control:
26
+ - no-store
27
+ Pragma:
28
+ - no-cache
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ X-Request-Version:
32
+ - 1.21.8
33
+ X-Request-Id:
34
+ - f7428654f99c8a3fbf1ed11296c3c3ea
35
+ X-Runtime:
36
+ - '0.273223'
37
+ Transfer-Encoding:
38
+ - chunked
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"successful":true,"response":{"token":"bybox0zptr3u8xuvtu7n","card_holder":"Matthew
42
+ Savage","card_number":"512345XXXXXX2346","card_expiry":"2030-02-28","card_type":"MasterCard","card_category":"Credit","card_subcategory":"Standard","card_issuer":"Banco
43
+ Del Pichincha, C.A.","card_country":"Ecuador","authorized":true,"transaction_count":0,"alias":null},"errors":[],"test":true}'
44
+ http_version:
45
+ recorded_at: Fri, 13 Dec 2019 03:37:01 GMT
46
+ recorded_with: VCR 3.0.3