balanced 0.8.2 → 1.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/.rbenv-version +1 -1
  3. data/.ruby-version +1 -1
  4. data/Gemfile +7 -3
  5. data/README.md +2 -10
  6. data/Rakefile +4 -18
  7. data/balanced.gemspec +8 -10
  8. data/lib/balanced.rb +28 -28
  9. data/lib/balanced/client.rb +15 -6
  10. data/lib/balanced/error.rb +21 -12
  11. data/lib/balanced/pager.rb +66 -25
  12. data/lib/balanced/resources.rb +18 -17
  13. data/lib/balanced/resources/api_key.rb +4 -0
  14. data/lib/balanced/resources/bank_account.rb +26 -75
  15. data/lib/balanced/resources/callback.rb +2 -0
  16. data/lib/balanced/resources/card.rb +15 -65
  17. data/lib/balanced/resources/card_hold.rb +38 -0
  18. data/lib/balanced/resources/credit.rb +6 -50
  19. data/lib/balanced/resources/customer.rb +33 -71
  20. data/lib/balanced/resources/debit.rb +6 -14
  21. data/lib/balanced/resources/event.rb +6 -0
  22. data/lib/balanced/resources/funding_instrument.rb +11 -0
  23. data/lib/balanced/resources/hypermedia.rb +28 -0
  24. data/lib/balanced/resources/marketplace.rb +5 -203
  25. data/lib/balanced/resources/order.rb +71 -0
  26. data/lib/balanced/resources/refund.rb +2 -7
  27. data/lib/balanced/resources/resource.rb +169 -106
  28. data/lib/balanced/resources/reversal.rb +2 -8
  29. data/lib/balanced/resources/transfer.rb +11 -0
  30. data/lib/balanced/response/balanced_exception_middleware.rb +2 -2
  31. data/lib/balanced/utils.rb +47 -14
  32. data/lib/balanced/version.rb +1 -1
  33. data/scenario.cache +526 -380
  34. data/scenarios/api_key_create/definition.rb +1 -0
  35. data/scenarios/api_key_create/request.rb +2 -0
  36. data/scenarios/api_key_create/ruby.mako +21 -0
  37. data/scenarios/api_key_delete/definition.rb +1 -0
  38. data/scenarios/api_key_delete/request.rb +3 -0
  39. data/scenarios/api_key_delete/ruby.mako +12 -0
  40. data/scenarios/api_key_list/definition.rb +1 -0
  41. data/scenarios/api_key_list/request.rb +2 -0
  42. data/scenarios/api_key_list/ruby.mako +28 -0
  43. data/scenarios/api_key_show/definition.rb +1 -0
  44. data/scenarios/api_key_show/request.rb +2 -0
  45. data/scenarios/api_key_show/ruby.mako +18 -0
  46. data/scenarios/{customer_add_bank_account → bank_account_associate_to_customer}/definition.rb +0 -0
  47. data/scenarios/bank_account_associate_to_customer/request.rb +3 -0
  48. data/scenarios/bank_account_associate_to_customer/ruby.mako +49 -0
  49. data/scenarios/bank_account_create/definition.rb +1 -1
  50. data/scenarios/bank_account_create/request.rb +1 -1
  51. data/scenarios/bank_account_create/ruby.mako +44 -7
  52. data/scenarios/{credit_create_existing_bank_account → bank_account_credit}/definition.rb +0 -0
  53. data/scenarios/bank_account_credit/request.rb +3 -0
  54. data/scenarios/bank_account_credit/ruby.mako +42 -0
  55. data/scenarios/bank_account_debit/definition.rb +1 -0
  56. data/scenarios/bank_account_debit/request.rb +5 -0
  57. data/scenarios/bank_account_debit/ruby.mako +50 -0
  58. data/scenarios/bank_account_delete/request.rb +1 -1
  59. data/scenarios/bank_account_delete/ruby.mako +5 -3
  60. data/scenarios/bank_account_list/ruby.mako +76 -2
  61. data/scenarios/bank_account_show/definition.rb +1 -1
  62. data/scenarios/bank_account_show/request.rb +1 -1
  63. data/scenarios/bank_account_show/ruby.mako +41 -5
  64. data/scenarios/bank_account_update/definition.rb +1 -0
  65. data/scenarios/bank_account_update/request.rb +6 -0
  66. data/scenarios/bank_account_update/ruby.mako +56 -0
  67. data/scenarios/bank_account_verification_create/request.rb +1 -1
  68. data/scenarios/bank_account_verification_create/ruby.mako +20 -3
  69. data/scenarios/bank_account_verification_show/definition.rb +1 -1
  70. data/scenarios/bank_account_verification_show/request.rb +1 -1
  71. data/scenarios/bank_account_verification_show/ruby.mako +21 -4
  72. data/scenarios/bank_account_verification_update/definition.rb +1 -1
  73. data/scenarios/bank_account_verification_update/request.rb +5 -5
  74. data/scenarios/bank_account_verification_update/ruby.mako +24 -8
  75. data/scenarios/callback_create/definition.rb +1 -1
  76. data/scenarios/callback_create/request.rb +2 -2
  77. data/scenarios/callback_create/ruby.mako +22 -0
  78. data/scenarios/callback_delete/definition.rb +1 -1
  79. data/scenarios/callback_delete/request.rb +2 -2
  80. data/scenarios/callback_delete/ruby.mako +12 -0
  81. data/scenarios/callback_list/definition.rb +1 -1
  82. data/scenarios/callback_list/request.rb +1 -2
  83. data/scenarios/callback_list/ruby.mako +20 -0
  84. data/scenarios/callback_show/definition.rb +1 -1
  85. data/scenarios/callback_show/request.rb +1 -1
  86. data/scenarios/callback_show/ruby.mako +20 -0
  87. data/scenarios/{customer_add_card → card_associate_to_customer}/definition.rb +0 -0
  88. data/scenarios/card_associate_to_customer/request.rb +3 -0
  89. data/scenarios/card_associate_to_customer/ruby.mako +49 -0
  90. data/scenarios/card_create/request.rb +1 -2
  91. data/scenarios/card_create/ruby.mako +44 -7
  92. data/scenarios/card_debit/definition.rb +1 -0
  93. data/scenarios/card_debit/request.rb +5 -0
  94. data/scenarios/card_debit/ruby.mako +49 -0
  95. data/scenarios/card_delete/request.rb +1 -1
  96. data/scenarios/card_delete/ruby.mako +5 -3
  97. data/scenarios/card_hold_capture/definition.rb +1 -0
  98. data/scenarios/card_hold_capture/request.rb +5 -0
  99. data/scenarios/card_hold_capture/ruby.mako +49 -0
  100. data/scenarios/card_hold_create/definition.rb +1 -0
  101. data/scenarios/card_hold_create/request.rb +5 -0
  102. data/scenarios/card_hold_create/ruby.mako +38 -0
  103. data/scenarios/card_hold_list/definition.rb +1 -0
  104. data/scenarios/card_hold_list/request.rb +2 -0
  105. data/scenarios/card_hold_list/ruby.mako +60 -0
  106. data/scenarios/card_hold_show/definition.rb +1 -0
  107. data/scenarios/card_hold_show/request.rb +2 -0
  108. data/scenarios/card_hold_show/ruby.mako +36 -0
  109. data/scenarios/card_hold_update/definition.rb +1 -0
  110. data/scenarios/card_hold_update/request.rb +7 -0
  111. data/scenarios/card_hold_update/ruby.mako +42 -0
  112. data/scenarios/card_hold_void/definition.rb +1 -0
  113. data/scenarios/card_hold_void/request.rb +3 -0
  114. data/scenarios/card_hold_void/ruby.mako +36 -0
  115. data/scenarios/card_list/definition.rb +1 -1
  116. data/scenarios/card_list/request.rb +1 -1
  117. data/scenarios/card_list/ruby.mako +78 -5
  118. data/scenarios/card_show/definition.rb +1 -1
  119. data/scenarios/card_show/request.rb +1 -1
  120. data/scenarios/card_show/ruby.mako +42 -4
  121. data/scenarios/card_update/definition.rb +1 -1
  122. data/scenarios/card_update/request.rb +1 -1
  123. data/scenarios/card_update/ruby.mako +45 -4
  124. data/scenarios/credit_list/request.rb +1 -3
  125. data/scenarios/credit_list/ruby.mako +34 -4
  126. data/scenarios/{credit_bank_account_list → credit_list_bank_account}/definition.rb +0 -0
  127. data/scenarios/credit_list_bank_account/request.rb +3 -0
  128. data/scenarios/credit_list_bank_account/ruby.mako +13 -0
  129. data/scenarios/credit_show/definition.rb +1 -1
  130. data/scenarios/credit_show/request.rb +1 -3
  131. data/scenarios/credit_show/ruby.mako +35 -5
  132. data/scenarios/{credit_create_new_bank_account → credit_update}/definition.rb +0 -0
  133. data/scenarios/credit_update/request.rb +7 -0
  134. data/scenarios/credit_update/ruby.mako +48 -0
  135. data/scenarios/customer_create/request.rb +4 -1
  136. data/scenarios/customer_create/ruby.mako +60 -3
  137. data/scenarios/customer_delete/request.rb +1 -1
  138. data/scenarios/customer_delete/ruby.mako +4 -2
  139. data/scenarios/customer_list/definition.rb +1 -0
  140. data/scenarios/customer_list/request.rb +2 -0
  141. data/scenarios/customer_list/ruby.mako +105 -0
  142. data/scenarios/customer_show/definition.rb +1 -0
  143. data/scenarios/customer_show/request.rb +2 -0
  144. data/scenarios/customer_show/ruby.mako +58 -0
  145. data/scenarios/customer_update/definition.rb +1 -0
  146. data/scenarios/customer_update/request.rb +7 -0
  147. data/scenarios/customer_update/ruby.mako +64 -0
  148. data/scenarios/debit_list/request.rb +1 -3
  149. data/scenarios/debit_list/ruby.mako +70 -4
  150. data/scenarios/debit_show/definition.rb +1 -1
  151. data/scenarios/debit_show/request.rb +1 -1
  152. data/scenarios/debit_show/ruby.mako +39 -4
  153. data/scenarios/debit_update/definition.rb +1 -1
  154. data/scenarios/debit_update/request.rb +1 -1
  155. data/scenarios/debit_update/ruby.mako +39 -4
  156. data/scenarios/event_list/definition.rb +1 -1
  157. data/scenarios/event_list/request.rb +1 -2
  158. data/scenarios/event_list/ruby.mako +54 -5
  159. data/scenarios/event_show/definition.rb +1 -1
  160. data/scenarios/event_show/request.rb +1 -1
  161. data/scenarios/event_show/ruby.mako +54 -4
  162. data/scenarios/helpers.rb +29 -2
  163. data/scenarios/order_create/definition.rb +1 -0
  164. data/scenarios/order_create/request.rb +5 -0
  165. data/scenarios/order_create/ruby.mako +46 -0
  166. data/scenarios/order_list/definition.rb +1 -0
  167. data/scenarios/order_list/request.rb +2 -0
  168. data/scenarios/order_list/ruby.mako +42 -0
  169. data/scenarios/order_show/definition.rb +1 -0
  170. data/scenarios/order_show/request.rb +2 -0
  171. data/scenarios/order_show/ruby.mako +44 -0
  172. data/scenarios/order_update/definition.rb +1 -0
  173. data/scenarios/order_update/request.rb +7 -0
  174. data/scenarios/order_update/ruby.mako +50 -0
  175. data/scenarios/refund_create/definition.rb +1 -1
  176. data/scenarios/refund_create/request.rb +2 -1
  177. data/scenarios/refund_create/ruby.mako +33 -5
  178. data/scenarios/refund_list/request.rb +1 -3
  179. data/scenarios/refund_list/ruby.mako +30 -4
  180. data/scenarios/refund_show/definition.rb +1 -1
  181. data/scenarios/refund_show/request.rb +1 -1
  182. data/scenarios/refund_show/ruby.mako +32 -4
  183. data/scenarios/refund_update/definition.rb +1 -1
  184. data/scenarios/refund_update/request.rb +1 -1
  185. data/scenarios/refund_update/ruby.mako +32 -4
  186. data/scenarios/render_mako.rb +59 -4
  187. data/scenarios/reversal_create/definition.rb +1 -0
  188. data/scenarios/reversal_create/request.rb +9 -0
  189. data/scenarios/reversal_create/ruby.mako +45 -0
  190. data/scenarios/reversal_list/definition.rb +1 -0
  191. data/scenarios/reversal_list/request.rb +2 -0
  192. data/scenarios/reversal_list/ruby.mako +36 -0
  193. data/scenarios/reversal_show/definition.rb +1 -0
  194. data/scenarios/reversal_show/request.rb +2 -0
  195. data/scenarios/reversal_show/ruby.mako +37 -0
  196. data/scenarios/reversal_update/definition.rb +1 -0
  197. data/scenarios/reversal_update/request.rb +7 -0
  198. data/scenarios/reversal_update/ruby.mako +44 -0
  199. data/spec/balanced/error_spec.rb +7 -7
  200. data/spec/balanced/pager_spec.rb +10 -10
  201. data/spec/balanced/resources/api_key_spec.rb +6 -35
  202. data/spec/balanced/resources/bank_account_spec.rb +123 -218
  203. data/spec/balanced/resources/callback_spec.rb +12 -13
  204. data/spec/balanced/resources/card_hold_spec.rb +103 -0
  205. data/spec/balanced/resources/card_spec.rb +101 -27
  206. data/spec/balanced/resources/credit_spec.rb +69 -35
  207. data/spec/balanced/resources/customer_spec.rb +91 -271
  208. data/spec/balanced/resources/debit_spec.rb +95 -0
  209. data/spec/balanced/resources/marketplace_spec.rb +17 -170
  210. data/spec/balanced/resources/order_spec.rb +364 -0
  211. data/spec/balanced/resources/resource_spec.rb +25 -32
  212. data/spec/balanced_spec.rb +18 -36
  213. data/spec/client_spec.rb +7 -7
  214. data/spec/spec_helper.rb +19 -18
  215. data/spec/utils_spec.rb +5 -5
  216. metadata +123 -165
  217. data/examples/bank_account_debits.rb +0 -57
  218. data/examples/customers.rb +0 -114
  219. data/examples/events_and_callbacks.rb +0 -81
  220. data/examples/examples.rb +0 -162
  221. data/examples/exception_handling.rb +0 -44
  222. data/lib/balanced/resources/account.rb +0 -179
  223. data/lib/balanced/resources/hold.rb +0 -61
  224. data/lib/balanced/resources/invoice.rb +0 -11
  225. data/lib/balanced/resources/merchant.rb +0 -21
  226. data/lib/balanced/resources/transaction.rb +0 -17
  227. data/scenarios/account_add_card/definition.rb +0 -1
  228. data/scenarios/account_add_card/request.rb +0 -3
  229. data/scenarios/account_add_card/ruby.mako +0 -11
  230. data/scenarios/account_capture_hold/definition.rb +0 -1
  231. data/scenarios/account_capture_hold/request.rb +0 -3
  232. data/scenarios/account_capture_hold/ruby.mako +0 -11
  233. data/scenarios/account_create/definition.rb +0 -1
  234. data/scenarios/account_create/request.rb +0 -2
  235. data/scenarios/account_create/ruby.mako +0 -10
  236. data/scenarios/account_create_buyer/definition.rb +0 -1
  237. data/scenarios/account_create_buyer/request.rb +0 -5
  238. data/scenarios/account_create_buyer/ruby.mako +0 -13
  239. data/scenarios/account_create_debit/definition.rb +0 -1
  240. data/scenarios/account_create_debit/request.rb +0 -3
  241. data/scenarios/account_create_debit/ruby.mako +0 -11
  242. data/scenarios/account_create_hold/definition.rb +0 -1
  243. data/scenarios/account_create_hold/request.rb +0 -3
  244. data/scenarios/account_create_hold/ruby.mako +0 -11
  245. data/scenarios/account_create_merchant/definition.rb +0 -1
  246. data/scenarios/account_create_merchant/request.rb +0 -3
  247. data/scenarios/account_create_merchant/ruby.mako +0 -11
  248. data/scenarios/account_underwrite_business/definition.rb +0 -1
  249. data/scenarios/account_underwrite_business/request.rb +0 -17
  250. data/scenarios/account_underwrite_business/ruby.mako +0 -37
  251. data/scenarios/account_underwrite_person/definition.rb +0 -1
  252. data/scenarios/account_underwrite_person/request.rb +0 -18
  253. data/scenarios/account_underwrite_person/ruby.mako +0 -31
  254. data/scenarios/bank_account_find_and_credit/definition.rb +0 -1
  255. data/scenarios/bank_account_find_and_credit/request.rb +0 -5
  256. data/scenarios/bank_account_find_and_credit/ruby.mako +0 -13
  257. data/scenarios/bank_account_find_and_delete/definition.rb +0 -1
  258. data/scenarios/bank_account_find_and_delete/request.rb +0 -3
  259. data/scenarios/bank_account_find_and_delete/ruby.mako +0 -10
  260. data/scenarios/bank_account_invalid_routing_number/definition.rb +0 -1
  261. data/scenarios/bank_account_invalid_routing_number/request.rb +0 -11
  262. data/scenarios/bank_account_invalid_routing_number/ruby.mako +0 -16
  263. data/scenarios/card_invalidate/definition.rb +0 -1
  264. data/scenarios/card_invalidate/request.rb +0 -3
  265. data/scenarios/card_invalidate/ruby.mako +0 -10
  266. data/scenarios/credit_account_list/definition.rb +0 -1
  267. data/scenarios/credit_account_list/request.rb +0 -3
  268. data/scenarios/credit_account_list/ruby.mako +0 -10
  269. data/scenarios/credit_account_merchant_create/definition.rb +0 -1
  270. data/scenarios/credit_account_merchant_create/request.rb +0 -5
  271. data/scenarios/credit_account_merchant_create/ruby.mako +0 -12
  272. data/scenarios/credit_bank_account_list/request.rb +0 -5
  273. data/scenarios/credit_bank_account_list/ruby.mako +0 -12
  274. data/scenarios/credit_create_existing_bank_account/request.rb +0 -5
  275. data/scenarios/credit_create_existing_bank_account/ruby.mako +0 -12
  276. data/scenarios/credit_create_new_bank_account/request.rb +0 -10
  277. data/scenarios/credit_create_new_bank_account/ruby.mako +0 -21
  278. data/scenarios/credit_customer_list/definition.rb +0 -1
  279. data/scenarios/credit_customer_list/request.rb +0 -4
  280. data/scenarios/credit_customer_list/ruby.mako +0 -12
  281. data/scenarios/credit_failed_state/definition.rb +0 -1
  282. data/scenarios/credit_failed_state/request.rb +0 -10
  283. data/scenarios/credit_failed_state/ruby.mako +0 -18
  284. data/scenarios/credit_paid_state/definition.rb +0 -1
  285. data/scenarios/credit_paid_state/request.rb +0 -11
  286. data/scenarios/credit_paid_state/ruby.mako +0 -19
  287. data/scenarios/credit_pending_state/definition.rb +0 -1
  288. data/scenarios/credit_pending_state/request.rb +0 -9
  289. data/scenarios/credit_pending_state/ruby.mako +0 -17
  290. data/scenarios/customer_add_bank_account/request.rb +0 -3
  291. data/scenarios/customer_add_bank_account/ruby.mako +0 -11
  292. data/scenarios/customer_add_card/request.rb +0 -3
  293. data/scenarios/customer_add_card/ruby.mako +0 -11
  294. data/scenarios/customer_capture_hold/definition.rb +0 -1
  295. data/scenarios/customer_capture_hold/request.rb +0 -3
  296. data/scenarios/customer_capture_hold/ruby.mako +0 -0
  297. data/scenarios/customer_create_debit/definition.rb +0 -1
  298. data/scenarios/customer_create_debit/request.rb +0 -3
  299. data/scenarios/customer_create_debit/ruby.mako +0 -11
  300. data/scenarios/customer_create_hold/definition.rb +0 -1
  301. data/scenarios/customer_create_hold/request.rb +0 -3
  302. data/scenarios/customer_create_hold/ruby.mako +0 -11
  303. data/scenarios/customer_credit/definition.rb +0 -1
  304. data/scenarios/customer_credit/request.rb +0 -2
  305. data/scenarios/customer_credit/ruby.mako +0 -8
  306. data/scenarios/debit_account_list/definition.rb +0 -1
  307. data/scenarios/debit_account_list/request.rb +0 -3
  308. data/scenarios/debit_account_list/ruby.mako +0 -10
  309. data/scenarios/debit_create/definition.rb +0 -1
  310. data/scenarios/debit_create/request.rb +0 -5
  311. data/scenarios/debit_create/ruby.mako +0 -15
  312. data/scenarios/debit_customer_list/definition.rb +0 -1
  313. data/scenarios/debit_customer_list/request.rb +0 -4
  314. data/scenarios/debit_customer_list/ruby.mako +0 -12
  315. data/scenarios/debit_refund/definition.rb +0 -1
  316. data/scenarios/debit_refund/request.rb +0 -3
  317. data/scenarios/debit_refund/ruby.mako +0 -10
  318. data/scenarios/delete.rb +0 -7
  319. data/scenarios/event_replay/definition.rb +0 -0
  320. data/scenarios/event_replay/request.rb +0 -1
  321. data/scenarios/event_replay/ruby.mako +0 -0
  322. data/scenarios/execute.rb +0 -27
  323. data/scenarios/hold_account_list/definition.rb +0 -1
  324. data/scenarios/hold_account_list/request.rb +0 -3
  325. data/scenarios/hold_account_list/ruby.mako +0 -10
  326. data/scenarios/hold_capture/definition.rb +0 -1
  327. data/scenarios/hold_capture/request.rb +0 -5
  328. data/scenarios/hold_capture/ruby.mako +0 -15
  329. data/scenarios/hold_create/definition.rb +0 -1
  330. data/scenarios/hold_create/request.rb +0 -5
  331. data/scenarios/hold_create/ruby.mako +0 -14
  332. data/scenarios/hold_customer_list/definition.rb +0 -1
  333. data/scenarios/hold_customer_list/request.rb +0 -3
  334. data/scenarios/hold_customer_list/ruby.mako +0 -11
  335. data/scenarios/hold_list/definition.rb +0 -1
  336. data/scenarios/hold_list/request.rb +0 -4
  337. data/scenarios/hold_list/ruby.mako +0 -11
  338. data/scenarios/hold_show/definition.rb +0 -1
  339. data/scenarios/hold_show/request.rb +0 -2
  340. data/scenarios/hold_show/ruby.mako +0 -10
  341. data/scenarios/hold_update/definition.rb +0 -1
  342. data/scenarios/hold_update/request.rb +0 -7
  343. data/scenarios/hold_update/ruby.mako +0 -16
  344. data/scenarios/hold_void/definition.rb +0 -1
  345. data/scenarios/hold_void/request.rb +0 -3
  346. data/scenarios/hold_void/ruby.mako +0 -10
  347. data/scenarios/refund_account_list/definition.rb +0 -1
  348. data/scenarios/refund_account_list/request.rb +0 -3
  349. data/scenarios/refund_account_list/ruby.mako +0 -10
  350. data/scenarios/refund_customer_list/definition.rb +0 -1
  351. data/scenarios/refund_customer_list/request.rb +0 -3
  352. data/scenarios/refund_customer_list/ruby.mako +0 -11
  353. data/scenarios/render.rb +0 -32
  354. data/scenarios/render_one.rb +0 -32
  355. data/spec/balanced/resources/account_spec.rb +0 -636
  356. data/spec/balanced/resources/hold_spec.rb +0 -48
  357. data/spec/balanced/resources/merchant_spec.rb +0 -6
  358. data/spec/scenarios_spec.rb +0 -39
  359. data/upload_docs.rb +0 -40
@@ -0,0 +1 @@
1
+ Balanced::Order.save
@@ -0,0 +1,7 @@
1
+ <%= boiler_plate %>
2
+ order = Balanced::Order.fetch('<%= request['uri'] %>')
3
+ order.description = '<%= payload['description'] %>'
4
+ order.meta = {
5
+ <%= params_to_hash_for_args.call(payload['meta']).indent(2) %>
6
+ }
7
+ order.save
@@ -0,0 +1,50 @@
1
+ % if mode == 'definition':
2
+ Balanced::Order.save
3
+
4
+ % elif mode == 'request':
5
+ require 'balanced'
6
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
7
+
8
+ order = Balanced::Order.fetch('/orders/OR3FOihZa7lMHdAP5p8BJZVY')
9
+ order.description = 'New description for order'
10
+ order.meta = {
11
+ 'anykey' => 'valuegoeshere',
12
+ 'product.id' => '1234567890'
13
+ }
14
+ order.save
15
+
16
+ % elif mode == 'response':
17
+ #<Balanced::Order:0x007fdc9c11c5a8
18
+ @attributes=
19
+ {"amount"=>0,
20
+ "amount_escrowed"=>0,
21
+ "created_at"=>"2014-01-27T22:58:01.115720Z",
22
+ "currency"=>"USD",
23
+ "delivery_address"=>
24
+ {"city"=>nil,
25
+ "country_code"=>nil,
26
+ "line1"=>nil,
27
+ "line2"=>nil,
28
+ "postal_code"=>nil,
29
+ "state"=>nil},
30
+ "description"=>"New description for order",
31
+ "href"=>"/orders/OR3FOihZa7lMHdAP5p8BJZVY",
32
+ "id"=>"OR3FOihZa7lMHdAP5p8BJZVY",
33
+ "links"=>{"merchant"=>"CU3eeasZ9yQ86uzzIYZkrPGg"},
34
+ "meta"=>{"anykey"=>"valuegoeshere", "product.id"=>"1234567890"},
35
+ "updated_at"=>"2014-01-27T22:58:05.657463Z"},
36
+ @hyperlinks=
37
+ {"buyers"=>
38
+ #<Proc:0x007fdc9c114470/lib/balanced/utils.rb:6 (lambda)>,
39
+ "credits"=>
40
+ #<Proc:0x007fdc9c10e700/lib/balanced/utils.rb:6 (lambda)>,
41
+ "debits"=>
42
+ #<Proc:0x007fdc9c10c0b8/lib/balanced/utils.rb:6 (lambda)>,
43
+ "merchant"=>
44
+ #<Proc:0x007fdc9c106988/lib/balanced/resources/resource.rb:60 (lambda)>,
45
+ "refunds"=>
46
+ #<Proc:0x007fdc9c104200/lib/balanced/utils.rb:6 (lambda)>,
47
+ "reversals"=>
48
+ #<Proc:0x007fdc9c0f67b8/lib/balanced/utils.rb:6 (lambda)>}>
49
+
50
+ % endif
@@ -1 +1 @@
1
- Balanced::Debit.refund()
1
+ Balanced::Debit.refund
@@ -1,6 +1,7 @@
1
1
  <%= boiler_plate %>
2
- debit = Balanced::Debit.find('<%= request['debit_uri'] %>')
2
+ debit = Balanced::Debit.fetch('<%= request['debit_href'] %>')
3
3
  debit.refund(
4
+ :amount => <%= payload['amount'] %>,
4
5
  :description => '<%= payload['description'] %>',
5
6
  :meta => {
6
7
  <%= params_to_hash_for_args.call(payload['meta']).indent(2) %>
@@ -1,12 +1,12 @@
1
1
  % if mode == 'definition':
2
- Balanced::Debit.refund()
3
-
4
- % else:
2
+ Balanced::Debit.refund
3
+ % elif mode == 'request':
5
4
  require 'balanced'
6
- Balanced.configure('8c3aeeb80e9e11e38901026ba7f8ec28')
5
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
7
6
 
8
- debit = Balanced::Debit.find('/v1/marketplaces/TEST-MP4h8BxozeLxe7VAllP6b5gj/debits/WD1aYGtAuoJxpGSUYr8jVlyy')
7
+ debit = Balanced::Debit.fetch('/debits/WD3MKNxNTKBGgA7mX50yogiu')
9
8
  debit.refund(
9
+ :amount => 3000,
10
10
  :description => 'Refund for Order #1111',
11
11
  :meta => {
12
12
  'fulfillment.item.condition' => 'OK',
@@ -15,4 +15,32 @@ debit.refund(
15
15
  }
16
16
  )
17
17
 
18
+ % elif mode == 'response':
19
+ #<Balanced::Refund:0x007fdc9c0e1958
20
+ @attributes=
21
+ {"amount"=>3000,
22
+ "created_at"=>"2014-01-27T22:58:11.375665Z",
23
+ "currency"=>"USD",
24
+ "description"=>"Refund for Order #1111",
25
+ "href"=>"/refunds/RF3RklPuFgsgI50UuYtr4g6I",
26
+ "id"=>"RF3RklPuFgsgI50UuYtr4g6I",
27
+ "links"=>
28
+ {"debit"=>"WD3MKNxNTKBGgA7mX50yogiu", "dispute"=>nil, "order"=>nil},
29
+ "meta"=>
30
+ {"fulfillment.item.condition"=>"OK",
31
+ "merchant.feedback"=>"positive",
32
+ "user.refund_reason"=>"not happy with product"},
33
+ "status"=>"succeeded",
34
+ "transaction_number"=>"RF383-088-7077",
35
+ "updated_at"=>"2014-01-27T22:58:12.115131Z"},
36
+ @hyperlinks=
37
+ {"debit"=>
38
+ #<Proc:0x007fdc9c0d6eb8/lib/balanced/resources/resource.rb:60 (lambda)>,
39
+ "dispute"=>
40
+ #<Proc:0x007fdc9c0d5798/lib/balanced/utils.rb:6 (lambda)>,
41
+ "events"=>
42
+ #<Proc:0x007fdc9c0cf938/lib/balanced/utils.rb:6 (lambda)>,
43
+ "order"=>
44
+ #<Proc:0x007fdc9c0cebf0/lib/balanced/utils.rb:6 (lambda)>}>
45
+
18
46
  % endif
@@ -1,4 +1,2 @@
1
1
  <%= boiler_plate %>
2
- marketplace = Balanced::Marketplace.my_marketplace
3
-
4
- refunds = Balanced::Refund.all(:limit => 2)
2
+ refunds = Balanced::Refund.all
@@ -1,11 +1,37 @@
1
1
  % if mode == 'definition':
2
2
  Balanced::Refund.all
3
3
 
4
- % else:
4
+ % elif mode == 'request':
5
5
  require 'balanced'
6
- Balanced.configure('8c3aeeb80e9e11e38901026ba7f8ec28')
6
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
7
7
 
8
- marketplace = Balanced::Marketplace.my_marketplace
8
+ refunds = Balanced::Refund.all
9
+ % elif mode == 'response':
10
+ [#<Balanced::Refund:0x007fdc9c09f788
11
+ @attributes=
12
+ {"amount"=>3000,
13
+ "created_at"=>"2014-01-27T22:58:11.375665Z",
14
+ "currency"=>"USD",
15
+ "description"=>"Refund for Order #1111",
16
+ "href"=>"/refunds/RF3RklPuFgsgI50UuYtr4g6I",
17
+ "id"=>"RF3RklPuFgsgI50UuYtr4g6I",
18
+ "links"=>
19
+ {"debit"=>"WD3MKNxNTKBGgA7mX50yogiu", "dispute"=>nil, "order"=>nil},
20
+ "meta"=>
21
+ {"fulfillment.item.condition"=>"OK",
22
+ "merchant.feedback"=>"positive",
23
+ "user.refund_reason"=>"not happy with product"},
24
+ "status"=>"succeeded",
25
+ "transaction_number"=>"RF383-088-7077",
26
+ "updated_at"=>"2014-01-27T22:58:12.115131Z"},
27
+ @hyperlinks=
28
+ {"debit"=>
29
+ #<Proc:0x007fdc9c097d58/lib/balanced/resources/resource.rb:60 (lambda)>,
30
+ "dispute"=>
31
+ #<Proc:0x007fdc9c097290/lib/balanced/utils.rb:6 (lambda)>,
32
+ "events"=>
33
+ #<Proc:0x007fdc9c0945b8/lib/balanced/utils.rb:6 (lambda)>,
34
+ "order"=>
35
+ #<Proc:0x007fdc9c08c890/lib/balanced/utils.rb:6 (lambda)>}>]
9
36
 
10
- refunds = Balanced::Refund.all(:limit => 2)
11
37
  % endif
@@ -1 +1 @@
1
- Balanced::Refund.find()
1
+ Balanced::Refund.fetch
@@ -1,2 +1,2 @@
1
1
  <%= boiler_plate %>
2
- refund = Balanced::Refund.find('<%= request['uri'] %>')
2
+ refund = Balanced::Refund.fetch('<%= request['uri'] %>')
@@ -1,10 +1,38 @@
1
1
  % if mode == 'definition':
2
- Balanced::Refund.find()
2
+ Balanced::Refund.fetch
3
3
 
4
- % else:
4
+ % elif mode == 'request':
5
5
  require 'balanced'
6
- Balanced.configure('8c3aeeb80e9e11e38901026ba7f8ec28')
6
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
7
7
 
8
- refund = Balanced::Refund.find('/v1/customers/ACO702cHD2tPiOCRSKYzVf1/refunds/RF1cWzNKWwQnCCbeonFdLVkC')
8
+ refund = Balanced::Refund.fetch('/refunds/RF3RklPuFgsgI50UuYtr4g6I')
9
+
10
+ % elif mode == 'response':
11
+ #<Balanced::Refund:0x007fdc9b1cd250
12
+ @attributes=
13
+ {"amount"=>3000,
14
+ "created_at"=>"2014-01-27T22:58:11.375665Z",
15
+ "currency"=>"USD",
16
+ "description"=>"Refund for Order #1111",
17
+ "href"=>"/refunds/RF3RklPuFgsgI50UuYtr4g6I",
18
+ "id"=>"RF3RklPuFgsgI50UuYtr4g6I",
19
+ "links"=>
20
+ {"debit"=>"WD3MKNxNTKBGgA7mX50yogiu", "dispute"=>nil, "order"=>nil},
21
+ "meta"=>
22
+ {"fulfillment.item.condition"=>"OK",
23
+ "merchant.feedback"=>"positive",
24
+ "user.refund_reason"=>"not happy with product"},
25
+ "status"=>"succeeded",
26
+ "transaction_number"=>"RF383-088-7077",
27
+ "updated_at"=>"2014-01-27T22:58:12.115131Z"},
28
+ @hyperlinks=
29
+ {"debit"=>
30
+ #<Proc:0x007fdc9b1c5f28/lib/balanced/resources/resource.rb:60 (lambda)>,
31
+ "dispute"=>
32
+ #<Proc:0x007fdc9b1c4c18/lib/balanced/utils.rb:6 (lambda)>,
33
+ "events"=>
34
+ #<Proc:0x007fdc9b1a3d88/lib/balanced/utils.rb:6 (lambda)>,
35
+ "order"=>
36
+ #<Proc:0x007fdc9b198320/lib/balanced/utils.rb:6 (lambda)>}>
9
37
 
10
38
  % endif
@@ -1 +1 @@
1
- Balanced::Refund.save()
1
+ Balanced::Refund.save
@@ -1,5 +1,5 @@
1
1
  <%= boiler_plate %>
2
- refund = Balanced::Refund.find('<%= request['uri'] %>')
2
+ refund = Balanced::Refund.fetch('<%= request['uri'] %>')
3
3
  refund.description = '<%= payload['description'] %>'
4
4
  refund.meta = {
5
5
  <%= params_to_hash_for_args.call(payload['meta']).indent(2) %>
@@ -1,11 +1,11 @@
1
1
  % if mode == 'definition':
2
- Balanced::Refund.save()
2
+ Balanced::Refund.save
3
3
 
4
- % else:
4
+ % elif mode == 'request':
5
5
  require 'balanced'
6
- Balanced.configure('8c3aeeb80e9e11e38901026ba7f8ec28')
6
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
7
7
 
8
- refund = Balanced::Refund.find('/v1/customers/ACO702cHD2tPiOCRSKYzVf1/refunds/RF1cWzNKWwQnCCbeonFdLVkC')
8
+ refund = Balanced::Refund.fetch('/refunds/RF3RklPuFgsgI50UuYtr4g6I')
9
9
  refund.description = 'update this description'
10
10
  refund.meta = {
11
11
  'refund.reason' => 'user not happy with product',
@@ -14,4 +14,32 @@ refund.meta = {
14
14
  }
15
15
  refund.save
16
16
 
17
+ % elif mode == 'response':
18
+ #<Balanced::Refund:0x007fdc9c0149f8
19
+ @attributes=
20
+ {"amount"=>3000,
21
+ "created_at"=>"2014-01-27T22:58:11.375665Z",
22
+ "currency"=>"USD",
23
+ "description"=>"update this description",
24
+ "href"=>"/refunds/RF3RklPuFgsgI50UuYtr4g6I",
25
+ "id"=>"RF3RklPuFgsgI50UuYtr4g6I",
26
+ "links"=>
27
+ {"debit"=>"WD3MKNxNTKBGgA7mX50yogiu", "dispute"=>nil, "order"=>nil},
28
+ "meta"=>
29
+ {"refund.reason"=>"user not happy with product",
30
+ "user.notes"=>"very polite on the phone",
31
+ "user.refund.count"=>"3"},
32
+ "status"=>"succeeded",
33
+ "transaction_number"=>"RF383-088-7077",
34
+ "updated_at"=>"2014-01-27T22:58:17.950799Z"},
35
+ @hyperlinks=
36
+ {"debit"=>
37
+ #<Proc:0x007fdc9c00d838/lib/balanced/resources/resource.rb:60 (lambda)>,
38
+ "dispute"=>
39
+ #<Proc:0x007fdc9c00cb18/lib/balanced/utils.rb:6 (lambda)>,
40
+ "events"=>
41
+ #<Proc:0x007fdc9b865018/lib/balanced/utils.rb:6 (lambda)>,
42
+ "order"=>
43
+ #<Proc:0x007fdc9b85ff78/lib/balanced/utils.rb:6 (lambda)>}>
44
+
17
45
  % endif
@@ -1,9 +1,52 @@
1
+ require 'rubygems'
1
2
  require 'erb'
2
3
  require 'json'
3
- require 'ruby-debug'
4
- require_relative 'helpers'
4
+ #require 'ruby-debug'
5
+ require './scenarios/helpers'
6
+ require './lib/balanced'
7
+ require 'pp'
8
+ require 'json'
9
+
10
+ class BalancedResourceObject
11
+ include Balanced::Resource
12
+ include Balanced::Resource::ClassMethods
13
+ end
14
+
15
+ def construct_resource(key, payload, links, meta)
16
+ cls = Balanced.from_hypermedia_registry(key)
17
+ instance = cls.new payload
18
+ instance.hydrate(links, meta)
19
+ instance
20
+ end
5
21
 
6
- parsed_data = JSON.parse(File.read('./scenario.cache'))
22
+ def construct_from_response(payload)
23
+ payload = Balanced::Utils.indifferent_read_access payload
24
+
25
+ links = payload.delete('links') || {}
26
+ meta = payload.delete('meta') || {}
27
+
28
+ payload.each do |key, value|
29
+ if key != 'errors'
30
+ if meta['first'] != nil #value.length > 1
31
+ instances = Array.new
32
+ value.first(2).each do |v|
33
+ instances << construct_resource(key, v, links, meta)
34
+ end
35
+ return instances
36
+ else
37
+ return construct_resource(key, value.first, links, meta)
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ def tidy_response(response)
44
+ #@/Users/ben/Development/ruby/balanced-ruby/lib/balanced/utils.rb:6
45
+ return if ! response
46
+ return response.gsub(/@\S(.*?)\Sbalanced-ruby/, '')
47
+ end
48
+
49
+ parsed_data = JSON.parse(File.read('scenario.cache'))
7
50
 
8
51
  Dir.chdir("./scenarios")
9
52
  subdir_list = Dir["*"].reject { |o| not File.directory?(o) }
@@ -14,6 +57,7 @@ boiler_plate = "require 'balanced'\nBalanced.configure('#{api_key}')\n"
14
57
 
15
58
  params_to_hash = @helpers[:params_to_hash]
16
59
  params_to_hash_for_args = @helpers[:params_to_hash_for_args]
60
+ params_to_key_word_arguments = @helpers[:params_to_key_word_arguments]
17
61
  subdir_list.each do |scenario|
18
62
  begin
19
63
  definition = File.read("./#{scenario}/definition.rb")
@@ -21,6 +65,11 @@ subdir_list.each do |scenario|
21
65
  # generate new erb template file from each request.rb file
22
66
  erb = ERB.new(template)
23
67
  request = parsed_data[scenario]['request']
68
+ response = nil
69
+ if parsed_data[scenario]['response'] != nil
70
+ parsed_response = JSON.parse(parsed_data[scenario]['response'])
71
+ response = PP.pp(construct_from_response(parsed_response), "")
72
+ end
24
73
  payload = request['payload']
25
74
  # render erb file passing in all local variables
26
75
  executable = erb.result(binding)
@@ -29,14 +78,20 @@ subdir_list.each do |scenario|
29
78
  f.write("\n")
30
79
  f.write(definition)
31
80
  f.write("\n")
32
- f.write("% else:")
81
+ f.write("% elif mode == 'request':")
33
82
  f.write("\n")
34
83
  f.write(executable)
35
84
  f.write("\n")
85
+ f.write("% elif mode == 'response':")
86
+ f.write("\n")
87
+ f.write(tidy_response(response))
88
+ f.write("\n")
36
89
  f.write("% endif")
37
90
  f.write("\n")
38
91
  end
39
92
  rescue Exception => e
93
+ puts e
94
+ puts e.backtrace
40
95
  puts "Error rendering #{scenario}'s mako"
41
96
  end
42
97
  end
@@ -0,0 +1 @@
1
+ Balanced::Credit.reverse
@@ -0,0 +1,9 @@
1
+ <%= boiler_plate %>
2
+ reversal = Balanced::Credit.fetch('<%= request['credit_href'] %>')
3
+ credit.reverse(
4
+ :amount => <%= payload['amount'] %>,
5
+ :description => '<%= payload['description'] %>',
6
+ :meta => {
7
+ <%= params_to_hash_for_args.call(payload['meta']).indent(2) %>
8
+ }
9
+ )
@@ -0,0 +1,45 @@
1
+ % if mode == 'definition':
2
+ Balanced::Credit.reverse
3
+ % elif mode == 'request':
4
+ require 'balanced'
5
+ Balanced.configure('ak-test-1kvvievk0Qqw5wQPsrlM9g7wQwNe62cyc')
6
+
7
+ reversal = Balanced::Credit.fetch('/credits/CR40neytmVG2HDBp1opfF7sY')
8
+ credit.reverse(
9
+ :amount => 3000,
10
+ :description => 'Reversal for Order #1111',
11
+ :meta => {
12
+ 'fulfillment.item.condition' => 'OK',
13
+ 'merchant.feedback' => 'positive',
14
+ 'user.refund_reason' => 'not happy with product'
15
+ }
16
+ )
17
+
18
+ % elif mode == 'response':
19
+ #<Balanced::Reversal:0x007fdc9b8048d0
20
+ @attributes=
21
+ {"amount"=>3000,
22
+ "created_at"=>"2014-01-27T22:58:21.214829Z",
23
+ "currency"=>"USD",
24
+ "description"=>"Reversal for Order #1111",
25
+ "failure_reason"=>nil,
26
+ "failure_reason_code"=>nil,
27
+ "href"=>"/reversals/RV42n8M9XZWna427oPDDi4RG",
28
+ "id"=>"RV42n8M9XZWna427oPDDi4RG",
29
+ "links"=>{"credit"=>"CR40neytmVG2HDBp1opfF7sY", "order"=>nil},
30
+ "meta"=>
31
+ {"fulfillment.item.condition"=>"OK",
32
+ "merchant.feedback"=>"positive",
33
+ "user.refund_reason"=>"not happy with product"},
34
+ "status"=>"succeeded",
35
+ "transaction_number"=>"RV219-169-0008",
36
+ "updated_at"=>"2014-01-27T22:58:22.190749Z"},
37
+ @hyperlinks=
38
+ {"credit"=>
39
+ #<Proc:0x007fdc9b190b20/lib/balanced/resources/resource.rb:60 (lambda)>,
40
+ "events"=>
41
+ #<Proc:0x007fdc9b188380/lib/balanced/utils.rb:6 (lambda)>,
42
+ "order"=>
43
+ #<Proc:0x007fdc9b1818c8/lib/balanced/utils.rb:6 (lambda)>}>
44
+
45
+ % endif