paypal-server-sdk 1.1.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +82 -23
  3. data/bin/console +15 -0
  4. data/lib/paypal_server_sdk/api_helper.rb +2 -2
  5. data/lib/paypal_server_sdk/client.rb +27 -3
  6. data/lib/paypal_server_sdk/configuration.rb +76 -8
  7. data/lib/paypal_server_sdk/controllers/base_controller.rb +4 -10
  8. data/lib/paypal_server_sdk/controllers/o_auth_authorization_controller.rb +4 -4
  9. data/lib/paypal_server_sdk/controllers/orders_controller.rb +211 -211
  10. data/lib/paypal_server_sdk/controllers/payments_controller.rb +110 -103
  11. data/lib/paypal_server_sdk/controllers/subscriptions_controller.rb +843 -0
  12. data/lib/paypal_server_sdk/controllers/transaction_search_controller.rb +178 -0
  13. data/lib/paypal_server_sdk/controllers/vault_controller.rb +95 -95
  14. data/lib/paypal_server_sdk/exceptions/api_exception.rb +2 -2
  15. data/lib/paypal_server_sdk/exceptions/default_error_exception.rb +95 -0
  16. data/lib/paypal_server_sdk/exceptions/error_exception.rb +2 -2
  17. data/lib/paypal_server_sdk/exceptions/o_auth_provider_exception.rb +2 -2
  18. data/lib/paypal_server_sdk/exceptions/search_error_exception.rb +107 -0
  19. data/lib/paypal_server_sdk/exceptions/subscription_error_exception.rb +95 -0
  20. data/lib/paypal_server_sdk/http/api_response.rb +6 -8
  21. data/lib/paypal_server_sdk/http/auth/o_auth2.rb +18 -3
  22. data/lib/paypal_server_sdk/http/http_call_back.rb +2 -2
  23. data/lib/paypal_server_sdk/http/http_method_enum.rb +2 -2
  24. data/lib/paypal_server_sdk/http/http_request.rb +2 -2
  25. data/lib/paypal_server_sdk/http/http_response.rb +2 -2
  26. data/lib/paypal_server_sdk/http/proxy_settings.rb +22 -0
  27. data/lib/paypal_server_sdk/logging/configuration/api_logging_configuration.rb +183 -111
  28. data/lib/paypal_server_sdk/logging/sdk_logger.rb +2 -2
  29. data/lib/paypal_server_sdk/models/activate_subscription_request.rb +63 -0
  30. data/lib/paypal_server_sdk/models/activity_timestamps.rb +2 -2
  31. data/lib/paypal_server_sdk/models/address.rb +2 -2
  32. data/lib/paypal_server_sdk/models/amount_breakdown.rb +4 -4
  33. data/lib/paypal_server_sdk/models/amount_with_breakdown.rb +2 -2
  34. data/lib/paypal_server_sdk/models/app_switch_context.rb +74 -0
  35. data/lib/paypal_server_sdk/models/apple_pay_attributes.rb +2 -2
  36. data/lib/paypal_server_sdk/models/apple_pay_attributes_response.rb +2 -2
  37. data/lib/paypal_server_sdk/models/apple_pay_card.rb +2 -2
  38. data/lib/paypal_server_sdk/models/apple_pay_card_response.rb +2 -2
  39. data/lib/paypal_server_sdk/models/apple_pay_decrypted_token_data.rb +2 -2
  40. data/lib/paypal_server_sdk/models/apple_pay_experience_context.rb +2 -2
  41. data/lib/paypal_server_sdk/models/apple_pay_payment_data.rb +2 -2
  42. data/lib/paypal_server_sdk/models/apple_pay_payment_data_type.rb +15 -2
  43. data/lib/paypal_server_sdk/models/apple_pay_payment_object.rb +2 -2
  44. data/lib/paypal_server_sdk/models/apple_pay_payment_token.rb +2 -2
  45. data/lib/paypal_server_sdk/models/apple_pay_request.rb +2 -2
  46. data/lib/paypal_server_sdk/models/apple_pay_request_card.rb +88 -0
  47. data/lib/paypal_server_sdk/models/apple_pay_tokenized_card.rb +3 -4
  48. data/lib/paypal_server_sdk/models/application_context_user_action.rb +42 -0
  49. data/lib/paypal_server_sdk/models/assurance_details.rb +2 -2
  50. data/lib/paypal_server_sdk/models/auction_information.rb +100 -0
  51. data/lib/paypal_server_sdk/models/authentication_response.rb +2 -2
  52. data/lib/paypal_server_sdk/models/authorization.rb +4 -4
  53. data/lib/paypal_server_sdk/models/authorization_incomplete_reason.rb +15 -2
  54. data/lib/paypal_server_sdk/models/authorization_status.rb +19 -2
  55. data/lib/paypal_server_sdk/models/authorization_status_details.rb +2 -2
  56. data/lib/paypal_server_sdk/models/authorization_status_with_details.rb +2 -2
  57. data/lib/paypal_server_sdk/models/authorization_with_additional_data.rb +4 -4
  58. data/lib/paypal_server_sdk/models/avs_code.rb +37 -2
  59. data/lib/paypal_server_sdk/models/balance_information.rb +106 -0
  60. data/lib/paypal_server_sdk/models/balances_response.rb +111 -0
  61. data/lib/paypal_server_sdk/models/bancontact_payment_object.rb +2 -2
  62. data/lib/paypal_server_sdk/models/bancontact_payment_request.rb +2 -2
  63. data/lib/paypal_server_sdk/models/bank_request.rb +71 -0
  64. data/lib/paypal_server_sdk/models/base_model.rb +2 -2
  65. data/lib/paypal_server_sdk/models/billing_cycle.rb +7 -18
  66. data/lib/paypal_server_sdk/models/billing_cycle_override.rb +91 -0
  67. data/lib/paypal_server_sdk/models/billing_plan.rb +212 -0
  68. data/lib/paypal_server_sdk/models/bin_details.rb +2 -2
  69. data/lib/paypal_server_sdk/models/blik_experience_context.rb +10 -8
  70. data/lib/paypal_server_sdk/models/blik_level0_payment_object.rb +2 -2
  71. data/lib/paypal_server_sdk/models/blik_one_click_payment_object.rb +2 -2
  72. data/lib/paypal_server_sdk/models/blik_one_click_payment_request.rb +2 -2
  73. data/lib/paypal_server_sdk/models/blik_payment_object.rb +2 -2
  74. data/lib/paypal_server_sdk/models/blik_payment_request.rb +2 -2
  75. data/lib/paypal_server_sdk/models/callback_configuration.rb +2 -2
  76. data/lib/paypal_server_sdk/models/callback_events.rb +15 -2
  77. data/lib/paypal_server_sdk/models/cancel_subscription_request.rb +60 -0
  78. data/lib/paypal_server_sdk/models/capture_incomplete_reason.rb +25 -2
  79. data/lib/paypal_server_sdk/models/capture_payment_instruction.rb +2 -2
  80. data/lib/paypal_server_sdk/models/capture_request.rb +33 -32
  81. data/lib/paypal_server_sdk/models/capture_status.rb +19 -2
  82. data/lib/paypal_server_sdk/models/capture_status_details.rb +2 -2
  83. data/lib/paypal_server_sdk/models/capture_status_with_details.rb +2 -2
  84. data/lib/paypal_server_sdk/models/capture_subscription_request.rb +78 -0
  85. data/lib/paypal_server_sdk/models/capture_type.rb +26 -0
  86. data/lib/paypal_server_sdk/models/captured_payment.rb +6 -6
  87. data/lib/paypal_server_sdk/models/card_attributes.rb +2 -2
  88. data/lib/paypal_server_sdk/models/card_attributes_response.rb +2 -2
  89. data/lib/paypal_server_sdk/models/card_authentication_response.rb +2 -2
  90. data/lib/paypal_server_sdk/models/card_brand.rb +58 -2
  91. data/lib/paypal_server_sdk/models/card_customer.rb +98 -0
  92. data/lib/paypal_server_sdk/models/card_customer_information.rb +2 -2
  93. data/lib/paypal_server_sdk/models/card_experience_context.rb +2 -2
  94. data/lib/paypal_server_sdk/models/card_from_request.rb +2 -2
  95. data/lib/paypal_server_sdk/models/card_payment_token_entity.rb +2 -2
  96. data/lib/paypal_server_sdk/models/card_request.rb +2 -2
  97. data/lib/paypal_server_sdk/models/card_response.rb +2 -2
  98. data/lib/paypal_server_sdk/models/card_response_address.rb +2 -2
  99. data/lib/paypal_server_sdk/models/card_response_with_billing_address.rb +100 -0
  100. data/lib/paypal_server_sdk/models/card_stored_credential.rb +4 -4
  101. data/lib/paypal_server_sdk/models/card_supplementary_data.rb +2 -2
  102. data/lib/paypal_server_sdk/models/card_type.rb +18 -2
  103. data/lib/paypal_server_sdk/models/card_vault_response.rb +2 -2
  104. data/lib/paypal_server_sdk/models/card_verification.rb +2 -2
  105. data/lib/paypal_server_sdk/models/card_verification_details.rb +8 -8
  106. data/lib/paypal_server_sdk/models/card_verification_processor_response.rb +2 -2
  107. data/lib/paypal_server_sdk/models/card_verification_status.rb +15 -2
  108. data/lib/paypal_server_sdk/models/cart_information.rb +94 -0
  109. data/lib/paypal_server_sdk/models/checkout_option.rb +77 -0
  110. data/lib/paypal_server_sdk/models/checkout_payment_intent.rb +15 -2
  111. data/lib/paypal_server_sdk/models/cobranded_card.rb +2 -2
  112. data/lib/paypal_server_sdk/models/confirm_order_request.rb +2 -2
  113. data/lib/paypal_server_sdk/models/create_subscription_request.rb +151 -0
  114. data/lib/paypal_server_sdk/models/customer.rb +2 -2
  115. data/lib/paypal_server_sdk/models/customer_information.rb +2 -2
  116. data/lib/paypal_server_sdk/models/customer_response.rb +2 -2
  117. data/lib/paypal_server_sdk/models/customer_vault_payment_tokens_response.rb +2 -2
  118. data/lib/paypal_server_sdk/models/cvv_code.rb +27 -2
  119. data/lib/paypal_server_sdk/models/cycle_execution.rb +124 -0
  120. data/lib/paypal_server_sdk/models/disbursement_mode.rb +15 -2
  121. data/lib/paypal_server_sdk/models/dispute_category.rb +15 -2
  122. data/lib/paypal_server_sdk/models/eci_flag.rb +19 -2
  123. data/lib/paypal_server_sdk/models/enrollment_status.rb +17 -2
  124. data/lib/paypal_server_sdk/models/eps_payment_object.rb +2 -2
  125. data/lib/paypal_server_sdk/models/eps_payment_request.rb +2 -2
  126. data/lib/paypal_server_sdk/models/error_details.rb +2 -2
  127. data/lib/paypal_server_sdk/models/exchange_rate.rb +2 -2
  128. data/lib/paypal_server_sdk/models/experience_context.rb +9 -7
  129. data/lib/paypal_server_sdk/models/experience_context_shipping_preference.rb +46 -0
  130. data/lib/paypal_server_sdk/models/experience_status.rb +48 -0
  131. data/lib/paypal_server_sdk/models/failed_payment_details.rb +98 -0
  132. data/lib/paypal_server_sdk/models/frequency.rb +75 -0
  133. data/lib/paypal_server_sdk/models/fulfillment_type.rb +17 -2
  134. data/lib/paypal_server_sdk/models/giropay_payment_object.rb +2 -2
  135. data/lib/paypal_server_sdk/models/giropay_payment_request.rb +2 -2
  136. data/lib/paypal_server_sdk/models/google_pay_authentication_method.rb +15 -2
  137. data/lib/paypal_server_sdk/models/google_pay_card.rb +2 -2
  138. data/lib/paypal_server_sdk/models/google_pay_card_response.rb +2 -2
  139. data/lib/paypal_server_sdk/models/google_pay_decrypted_token_data.rb +2 -2
  140. data/lib/paypal_server_sdk/models/google_pay_experience_context.rb +2 -2
  141. data/lib/paypal_server_sdk/models/google_pay_payment_method.rb +8 -2
  142. data/lib/paypal_server_sdk/models/google_pay_request.rb +2 -2
  143. data/lib/paypal_server_sdk/models/google_pay_request_card.rb +2 -2
  144. data/lib/paypal_server_sdk/models/google_pay_wallet_response.rb +2 -2
  145. data/lib/paypal_server_sdk/models/ideal_payment_object.rb +2 -2
  146. data/lib/paypal_server_sdk/models/ideal_payment_request.rb +2 -2
  147. data/lib/paypal_server_sdk/models/incentive_details.rb +99 -0
  148. data/lib/paypal_server_sdk/models/incentive_information.rb +71 -0
  149. data/lib/paypal_server_sdk/models/interval_unit.rb +44 -0
  150. data/lib/paypal_server_sdk/models/item.rb +2 -2
  151. data/lib/paypal_server_sdk/models/item_category.rb +16 -2
  152. data/lib/paypal_server_sdk/models/item_details.rb +287 -0
  153. data/lib/paypal_server_sdk/models/item_request.rb +163 -0
  154. data/lib/paypal_server_sdk/models/last_payment_details.rb +75 -0
  155. data/lib/paypal_server_sdk/models/level2_card_processing_data.rb +2 -2
  156. data/lib/paypal_server_sdk/models/level3_card_processing_data.rb +2 -2
  157. data/lib/paypal_server_sdk/models/liability_shift_indicator.rb +16 -2
  158. data/lib/paypal_server_sdk/models/line_item.rb +2 -2
  159. data/lib/paypal_server_sdk/models/link_description.rb +2 -2
  160. data/lib/paypal_server_sdk/models/link_http_method.rb +29 -10
  161. data/lib/paypal_server_sdk/models/merchant_preferences.rb +73 -0
  162. data/lib/paypal_server_sdk/models/mobile_return_flow.rb +41 -0
  163. data/lib/paypal_server_sdk/models/mobile_web_context.rb +76 -0
  164. data/lib/paypal_server_sdk/models/modify_subscription_request.rb +124 -0
  165. data/lib/paypal_server_sdk/models/modify_subscription_response.rb +141 -0
  166. data/lib/paypal_server_sdk/models/money.rb +2 -2
  167. data/lib/paypal_server_sdk/models/mybank_payment_object.rb +2 -2
  168. data/lib/paypal_server_sdk/models/mybank_payment_request.rb +2 -2
  169. data/lib/paypal_server_sdk/models/name.rb +2 -2
  170. data/lib/paypal_server_sdk/models/native_app_context.rb +72 -0
  171. data/lib/paypal_server_sdk/models/net_amount_breakdown_item.rb +2 -2
  172. data/lib/paypal_server_sdk/models/network_token.rb +2 -2
  173. data/lib/paypal_server_sdk/models/{network_transaction_reference.rb → network_transaction.rb} +14 -11
  174. data/lib/paypal_server_sdk/models/network_transaction_reference_entity.rb +2 -2
  175. data/lib/paypal_server_sdk/models/o_auth_provider_error.rb +19 -2
  176. data/lib/paypal_server_sdk/models/o_auth_token.rb +2 -2
  177. data/lib/paypal_server_sdk/models/one_time_charge.rb +2 -2
  178. data/lib/paypal_server_sdk/models/order.rb +7 -4
  179. data/lib/paypal_server_sdk/models/order_application_context.rb +26 -15
  180. data/lib/paypal_server_sdk/models/order_application_context_landing_page.rb +16 -2
  181. data/lib/paypal_server_sdk/models/order_application_context_shipping_preference.rb +17 -5
  182. data/lib/paypal_server_sdk/models/order_application_context_user_action.rb +15 -2
  183. data/lib/paypal_server_sdk/models/order_authorize_request.rb +2 -2
  184. data/lib/paypal_server_sdk/models/order_authorize_request_payment_source.rb +2 -2
  185. data/lib/paypal_server_sdk/models/order_authorize_response.rb +16 -9
  186. data/lib/paypal_server_sdk/models/order_authorize_response_payment_source.rb +2 -2
  187. data/lib/paypal_server_sdk/models/order_billing_plan.rb +2 -2
  188. data/lib/paypal_server_sdk/models/order_capture_request.rb +2 -2
  189. data/lib/paypal_server_sdk/models/order_capture_request_payment_source.rb +2 -2
  190. data/lib/paypal_server_sdk/models/order_confirm_application_context.rb +2 -2
  191. data/lib/paypal_server_sdk/models/order_request.rb +7 -4
  192. data/lib/paypal_server_sdk/models/order_status.rb +19 -2
  193. data/lib/paypal_server_sdk/models/order_tracker_item.rb +2 -2
  194. data/lib/paypal_server_sdk/models/order_tracker_request.rb +2 -2
  195. data/lib/paypal_server_sdk/models/order_tracker_response.rb +2 -2
  196. data/lib/paypal_server_sdk/models/order_tracker_status.rb +15 -2
  197. data/lib/paypal_server_sdk/models/orders_capture.rb +4 -4
  198. data/lib/paypal_server_sdk/models/orders_card_verification_method.rb +17 -2
  199. data/lib/paypal_server_sdk/models/os_type.rb +40 -0
  200. data/lib/paypal_server_sdk/models/p24_payment_object.rb +2 -2
  201. data/lib/paypal_server_sdk/models/p24_payment_request.rb +2 -2
  202. data/lib/paypal_server_sdk/models/pa_res_status.rb +21 -2
  203. data/lib/paypal_server_sdk/models/participant_metadata.rb +2 -2
  204. data/lib/paypal_server_sdk/models/patch.rb +2 -2
  205. data/lib/paypal_server_sdk/models/patch_op.rb +19 -2
  206. data/lib/paypal_server_sdk/models/payee_base.rb +2 -2
  207. data/lib/paypal_server_sdk/models/payee_payment_method_preference.rb +15 -2
  208. data/lib/paypal_server_sdk/models/payer.rb +4 -3
  209. data/lib/paypal_server_sdk/models/payer_base.rb +2 -2
  210. data/lib/paypal_server_sdk/models/payer_information.rb +146 -0
  211. data/lib/paypal_server_sdk/models/payer_name.rb +128 -0
  212. data/lib/paypal_server_sdk/models/payment_advice_code.rb +28 -2
  213. data/lib/paypal_server_sdk/models/payment_authorization.rb +4 -4
  214. data/lib/paypal_server_sdk/models/payment_collection.rb +2 -2
  215. data/lib/paypal_server_sdk/models/payment_initiator.rb +15 -2
  216. data/lib/paypal_server_sdk/models/payment_instruction.rb +2 -2
  217. data/lib/paypal_server_sdk/models/payment_method.rb +63 -0
  218. data/lib/paypal_server_sdk/models/payment_method_preference.rb +2 -2
  219. data/lib/paypal_server_sdk/models/payment_preferences.rb +105 -0
  220. data/lib/paypal_server_sdk/models/payment_preferences_override.rb +107 -0
  221. data/lib/paypal_server_sdk/models/payment_source.rb +2 -2
  222. data/lib/paypal_server_sdk/models/payment_source_response.rb +2 -2
  223. data/lib/paypal_server_sdk/models/payment_supplementary_data.rb +2 -2
  224. data/lib/paypal_server_sdk/models/payment_token_request.rb +2 -2
  225. data/lib/paypal_server_sdk/models/payment_token_request_card.rb +2 -2
  226. data/lib/paypal_server_sdk/models/payment_token_request_payment_source.rb +2 -2
  227. data/lib/paypal_server_sdk/models/payment_token_response.rb +5 -3
  228. data/lib/paypal_server_sdk/models/payment_token_response_payment_source.rb +4 -4
  229. data/lib/paypal_server_sdk/models/payment_token_status.rb +20 -4
  230. data/lib/paypal_server_sdk/models/payments_capture.rb +6 -6
  231. data/lib/paypal_server_sdk/models/paypal_experience_landing_page.rb +25 -3
  232. data/lib/paypal_server_sdk/models/paypal_experience_user_action.rb +15 -2
  233. data/lib/paypal_server_sdk/models/paypal_payment_token.rb +8 -7
  234. data/lib/paypal_server_sdk/models/paypal_payment_token_customer_type.rb +15 -2
  235. data/lib/paypal_server_sdk/models/paypal_payment_token_usage_type.rb +15 -2
  236. data/lib/paypal_server_sdk/models/paypal_reference_id_type.rb +44 -0
  237. data/lib/paypal_server_sdk/models/paypal_wallet.rb +2 -2
  238. data/lib/paypal_server_sdk/models/paypal_wallet_account_verification_status.rb +15 -2
  239. data/lib/paypal_server_sdk/models/paypal_wallet_attributes.rb +4 -3
  240. data/lib/paypal_server_sdk/models/paypal_wallet_attributes_response.rb +2 -2
  241. data/lib/paypal_server_sdk/models/paypal_wallet_contact_preference.rb +16 -2
  242. data/lib/paypal_server_sdk/models/paypal_wallet_context_shipping_preference.rb +16 -2
  243. data/lib/paypal_server_sdk/models/paypal_wallet_customer.rb +2 -2
  244. data/lib/paypal_server_sdk/models/paypal_wallet_customer_request.rb +2 -2
  245. data/lib/paypal_server_sdk/models/paypal_wallet_experience_context.rb +22 -9
  246. data/lib/paypal_server_sdk/models/paypal_wallet_response.rb +21 -6
  247. data/lib/paypal_server_sdk/models/paypal_wallet_stored_credential.rb +4 -3
  248. data/lib/paypal_server_sdk/models/paypal_wallet_vault_instruction.rb +12 -22
  249. data/lib/paypal_server_sdk/models/paypal_wallet_vault_response.rb +2 -2
  250. data/lib/paypal_server_sdk/models/paypal_wallet_vault_status.rb +16 -2
  251. data/lib/paypal_server_sdk/models/phone.rb +2 -2
  252. data/lib/paypal_server_sdk/models/phone_number.rb +4 -2
  253. data/lib/paypal_server_sdk/models/phone_number_with_country_code.rb +4 -2
  254. data/lib/paypal_server_sdk/models/phone_number_with_optional_country_code.rb +81 -0
  255. data/lib/paypal_server_sdk/models/phone_type.rb +23 -7
  256. data/lib/paypal_server_sdk/models/phone_with_type.rb +2 -2
  257. data/lib/paypal_server_sdk/models/plan.rb +7 -17
  258. data/lib/paypal_server_sdk/models/plan_collection.rb +111 -0
  259. data/lib/paypal_server_sdk/models/plan_details.rb +147 -0
  260. data/lib/paypal_server_sdk/models/plan_override.rb +96 -0
  261. data/lib/paypal_server_sdk/models/plan_request.rb +154 -0
  262. data/lib/paypal_server_sdk/models/plan_request_status.rb +42 -0
  263. data/lib/paypal_server_sdk/models/platform_fee.rb +2 -2
  264. data/lib/paypal_server_sdk/models/pricing_model.rb +16 -2
  265. data/lib/paypal_server_sdk/models/pricing_scheme.rb +2 -2
  266. data/lib/paypal_server_sdk/models/pricing_tier.rb +83 -0
  267. data/lib/paypal_server_sdk/models/processor_response.rb +2 -2
  268. data/lib/paypal_server_sdk/models/processor_response_code.rb +167 -2
  269. data/lib/paypal_server_sdk/models/purchase_unit.rb +2 -2
  270. data/lib/paypal_server_sdk/models/purchase_unit_request.rb +24 -14
  271. data/lib/paypal_server_sdk/models/reason_code.rb +60 -0
  272. data/lib/paypal_server_sdk/models/reauthorize_request.rb +2 -3
  273. data/lib/paypal_server_sdk/models/refund.rb +2 -2
  274. data/lib/paypal_server_sdk/models/refund_incomplete_reason.rb +8 -2
  275. data/lib/paypal_server_sdk/models/refund_payment_instruction.rb +2 -2
  276. data/lib/paypal_server_sdk/models/refund_platform_fee.rb +2 -2
  277. data/lib/paypal_server_sdk/models/refund_request.rb +2 -2
  278. data/lib/paypal_server_sdk/models/refund_status.rb +17 -2
  279. data/lib/paypal_server_sdk/models/refund_status_details.rb +2 -2
  280. data/lib/paypal_server_sdk/models/refund_status_with_details.rb +2 -2
  281. data/lib/paypal_server_sdk/models/related_identifiers.rb +2 -2
  282. data/lib/paypal_server_sdk/models/return_flow.rb +41 -0
  283. data/lib/paypal_server_sdk/models/risk_supplementary_data.rb +2 -2
  284. data/lib/paypal_server_sdk/models/search_response.rb +176 -0
  285. data/lib/paypal_server_sdk/models/seller_payable_breakdown.rb +2 -2
  286. data/lib/paypal_server_sdk/models/seller_protection.rb +2 -2
  287. data/lib/paypal_server_sdk/models/seller_protection_status.rb +16 -2
  288. data/lib/paypal_server_sdk/models/seller_receivable_breakdown.rb +2 -2
  289. data/lib/paypal_server_sdk/models/sepa_debit_experience_context.rb +88 -0
  290. data/lib/paypal_server_sdk/models/sepa_debit_request.rb +64 -0
  291. data/lib/paypal_server_sdk/models/setup_fee_failure_action.rb +37 -0
  292. data/lib/paypal_server_sdk/models/setup_token_request.rb +2 -2
  293. data/lib/paypal_server_sdk/models/setup_token_request_card.rb +5 -5
  294. data/lib/paypal_server_sdk/models/setup_token_request_payment_source.rb +28 -7
  295. data/lib/paypal_server_sdk/models/setup_token_response.rb +5 -3
  296. data/lib/paypal_server_sdk/models/setup_token_response_card.rb +2 -2
  297. data/lib/paypal_server_sdk/models/setup_token_response_payment_source.rb +4 -4
  298. data/lib/paypal_server_sdk/models/shipment_carrier.rb +1538 -3
  299. data/lib/paypal_server_sdk/models/shipping_details.rb +2 -2
  300. data/lib/paypal_server_sdk/models/shipping_information.rb +101 -0
  301. data/lib/paypal_server_sdk/models/shipping_name.rb +2 -2
  302. data/lib/paypal_server_sdk/models/shipping_option.rb +2 -2
  303. data/lib/paypal_server_sdk/models/shipping_type.rb +17 -2
  304. data/lib/paypal_server_sdk/models/shipping_with_tracking_details.rb +33 -33
  305. data/lib/paypal_server_sdk/models/simple_postal_address_coarse_grained.rb +130 -0
  306. data/lib/paypal_server_sdk/models/sofort_payment_object.rb +2 -2
  307. data/lib/paypal_server_sdk/models/sofort_payment_request.rb +2 -2
  308. data/lib/paypal_server_sdk/models/standard_entry_class_code.rb +17 -2
  309. data/lib/paypal_server_sdk/models/store_in_vault_instruction.rb +8 -2
  310. data/lib/paypal_server_sdk/models/store_information.rb +71 -0
  311. data/lib/paypal_server_sdk/models/stored_payment_source.rb +4 -4
  312. data/lib/paypal_server_sdk/models/stored_payment_source_payment_type.rb +16 -2
  313. data/lib/paypal_server_sdk/models/stored_payment_source_usage_type.rb +16 -2
  314. data/lib/paypal_server_sdk/models/subscriber.rb +84 -0
  315. data/lib/paypal_server_sdk/models/subscriber_request.rb +97 -0
  316. data/lib/paypal_server_sdk/models/subscription.rb +205 -0
  317. data/lib/paypal_server_sdk/models/subscription_amount_with_breakdown.rb +119 -0
  318. data/lib/paypal_server_sdk/models/subscription_application_context.rb +134 -0
  319. data/lib/paypal_server_sdk/models/subscription_billing_cycle.rb +108 -0
  320. data/lib/paypal_server_sdk/models/subscription_billing_information.rb +148 -0
  321. data/lib/paypal_server_sdk/models/subscription_card_request.rb +141 -0
  322. data/lib/paypal_server_sdk/models/subscription_collection.rb +90 -0
  323. data/lib/paypal_server_sdk/models/subscription_customer_information.rb +84 -0
  324. data/lib/paypal_server_sdk/models/subscription_patch_application_context.rb +122 -0
  325. data/lib/paypal_server_sdk/models/subscription_payer_name.rb +114 -0
  326. data/lib/paypal_server_sdk/models/subscription_payment_source.rb +65 -0
  327. data/lib/paypal_server_sdk/models/subscription_payment_source_response.rb +63 -0
  328. data/lib/paypal_server_sdk/models/subscription_plan_status.rb +42 -0
  329. data/lib/paypal_server_sdk/models/subscription_pricing_model.rb +36 -0
  330. data/lib/paypal_server_sdk/models/subscription_pricing_scheme.rb +129 -0
  331. data/lib/paypal_server_sdk/models/subscription_transaction_details.rb +118 -0
  332. data/lib/paypal_server_sdk/models/subscriptions_card_attributes.rb +83 -0
  333. data/lib/paypal_server_sdk/models/subscriptions_card_brand.rb +133 -0
  334. data/lib/paypal_server_sdk/models/supplementary_data.rb +2 -2
  335. data/lib/paypal_server_sdk/models/suspend_subscription.rb +60 -0
  336. data/lib/paypal_server_sdk/models/tax_amount.rb +63 -0
  337. data/lib/paypal_server_sdk/models/tax_id_type.rb +15 -2
  338. data/lib/paypal_server_sdk/models/tax_info.rb +2 -2
  339. data/lib/paypal_server_sdk/models/taxes.rb +71 -0
  340. data/lib/paypal_server_sdk/models/taxes_override.rb +72 -0
  341. data/lib/paypal_server_sdk/models/tenure_type.rb +18 -3
  342. data/lib/paypal_server_sdk/models/three_d_secure_authentication_response.rb +2 -2
  343. data/lib/paypal_server_sdk/models/three_d_secure_card_authentication_response.rb +2 -2
  344. data/lib/paypal_server_sdk/models/token.rb +2 -2
  345. data/lib/paypal_server_sdk/models/token_type.rb +8 -2
  346. data/lib/paypal_server_sdk/models/transaction_details.rb +126 -0
  347. data/lib/paypal_server_sdk/models/transaction_information.rb +494 -0
  348. data/lib/paypal_server_sdk/models/{order_update_callback_error_response_details.rb → transaction_search_error_details.rb} +32 -10
  349. data/lib/paypal_server_sdk/models/transactions_list.rb +111 -0
  350. data/lib/paypal_server_sdk/models/trustly_payment_object.rb +2 -2
  351. data/lib/paypal_server_sdk/models/trustly_payment_request.rb +2 -2
  352. data/lib/paypal_server_sdk/models/universal_product_code.rb +2 -2
  353. data/lib/paypal_server_sdk/models/upc_type.rb +20 -2
  354. data/lib/paypal_server_sdk/models/update_pricing_scheme.rb +72 -0
  355. data/lib/paypal_server_sdk/models/update_pricing_schemes_request.rb +69 -0
  356. data/lib/paypal_server_sdk/models/usage_pattern.rb +25 -2
  357. data/lib/paypal_server_sdk/models/vault_apple_pay_request.rb +73 -0
  358. data/lib/paypal_server_sdk/models/{setup_token_card_experience_context.rb → vault_card_experience_context.rb} +27 -18
  359. data/lib/paypal_server_sdk/models/vault_card_verification_method.rb +15 -2
  360. data/lib/paypal_server_sdk/models/vault_customer.rb +2 -2
  361. data/lib/paypal_server_sdk/models/vault_experience_context.rb +35 -12
  362. data/lib/paypal_server_sdk/models/vault_instruction.rb +2 -2
  363. data/lib/paypal_server_sdk/models/vault_instruction_action.rb +15 -2
  364. data/lib/paypal_server_sdk/models/vault_instruction_base.rb +2 -2
  365. data/lib/paypal_server_sdk/models/vault_paypal_wallet_request.rb +3 -3
  366. data/lib/paypal_server_sdk/models/vault_response.rb +2 -2
  367. data/lib/paypal_server_sdk/models/vault_response_customer.rb +2 -2
  368. data/lib/paypal_server_sdk/models/vault_status.rb +16 -2
  369. data/lib/paypal_server_sdk/models/vault_token_request.rb +2 -2
  370. data/lib/paypal_server_sdk/models/vault_token_request_type.rb +8 -2
  371. data/lib/paypal_server_sdk/models/vault_user_action.rb +42 -0
  372. data/lib/paypal_server_sdk/models/vault_venmo_request.rb +6 -6
  373. data/lib/paypal_server_sdk/models/vaulted_digital_wallet.rb +2 -2
  374. data/lib/paypal_server_sdk/models/vaulted_digital_wallet_shipping_details.rb +21 -7
  375. data/lib/paypal_server_sdk/models/{vault_venmo_experience_context.rb → venmo_experience_context.rb} +26 -16
  376. data/lib/paypal_server_sdk/models/venmo_payment_token.rb +8 -7
  377. data/lib/paypal_server_sdk/models/venmo_payment_token_customer_type.rb +15 -2
  378. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_pattern.rb +19 -2
  379. data/lib/paypal_server_sdk/models/venmo_payment_token_usage_type.rb +15 -2
  380. data/lib/paypal_server_sdk/models/venmo_vault_response.rb +100 -0
  381. data/lib/paypal_server_sdk/models/venmo_vault_response_status.rb +45 -0
  382. data/lib/paypal_server_sdk/models/venmo_wallet_additional_attributes.rb +2 -2
  383. data/lib/paypal_server_sdk/models/venmo_wallet_attributes_response.rb +5 -5
  384. data/lib/paypal_server_sdk/models/venmo_wallet_customer_information.rb +2 -2
  385. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context.rb +24 -10
  386. data/lib/paypal_server_sdk/models/{shipping_preference.rb → venmo_wallet_experience_context_shipping_preference.rb} +18 -4
  387. data/lib/paypal_server_sdk/models/venmo_wallet_experience_context_user_action.rb +42 -0
  388. data/lib/paypal_server_sdk/models/venmo_wallet_request.rb +2 -2
  389. data/lib/paypal_server_sdk/models/venmo_wallet_response.rb +16 -6
  390. data/lib/paypal_server_sdk/models/venmo_wallet_vault_attributes.rb +2 -2
  391. data/lib/paypal_server_sdk/utilities/date_time_helper.rb +2 -2
  392. data/lib/paypal_server_sdk/utilities/file_wrapper.rb +2 -2
  393. data/lib/paypal_server_sdk.rb +252 -160
  394. metadata +112 -22
  395. data/lib/paypal_server_sdk/models/order_update_callback_error_response.rb +0 -89
  396. data/lib/paypal_server_sdk/models/order_update_callback_request.rb +0 -111
  397. data/lib/paypal_server_sdk/models/order_update_callback_response.rb +0 -72
  398. data/lib/paypal_server_sdk/models/order_update_callback_shipping_address.rb +0 -107
  399. data/lib/paypal_server_sdk/models/order_update_callback_shipping_option.rb +0 -93
  400. data/lib/paypal_server_sdk/models/payments_payment_advice_code.rb +0 -42
  401. data/lib/paypal_server_sdk/models/payments_processor_response.rb +0 -98
  402. data/lib/paypal_server_sdk/models/shipping_options_purchase_unit.rb +0 -121
  403. data/lib/paypal_server_sdk/models/supplementary_purchase_data.rb +0 -76
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a6efdfdb5c0d12d4903e4c09dc6a0b033b574e4ace39f00c1d867314ac006783
4
- data.tar.gz: d0d73b90afe15c9bb77a687a8a9a0233da6e5365f05fbd39f1b1039bd4af9dc0
3
+ metadata.gz: 716ca4b1a12121acd6e221becbf2d29c55063b4f8b46eb68b499a84d6c22a175
4
+ data.tar.gz: c875e40983c4bb398f4d40849540c2e3e8a612f94383ca70326bd7a5a24f7223
5
5
  SHA512:
6
- metadata.gz: b8564b3b7cc18e06c95424b33fe51319e469f70b61ccc96812e7952bddab1e1013aedefc282ce98b16d790e0996d4029263b54ee366a899872373f959097c317
7
- data.tar.gz: 3c2d90a8a331ced3469cdd1d49a8d5fe77e657875ee92d56b7b691299bc57fb02528e9f0041b2305e7d49ae6e7fa2bef858885394a95dc2720371b86c91abb59
6
+ metadata.gz: 96c1fd80ecdf37001dc6e351e81677e02740414aba53b4913a71c56a82a1bafcc5d5f55caf6af264a5e065fdbcfcb7ddd07875358c09b893087277016371a6a3
7
+ data.tar.gz: 0d5bb3db5f27cddfff1c1712fd14d0519108a9d5239605615f6ade8aa5c452cdf5b2cb59986e9e99066e44ea04042867c5c79491b4e21f10be0db6eddb228ebc
data/README.md CHANGED
@@ -5,35 +5,72 @@
5
5
 
6
6
  ### Important Notes
7
7
 
8
- - **Available Features:** This SDK currently contains only 3 of PayPal's API endpoints. Additional endpoints and functionality will be added in the future.
8
+ - **Available Features:** This SDK currently contains only 5 of PayPal's API endpoints. Additional endpoints and functionality will be added in the future.
9
9
 
10
10
  ### Information
11
11
 
12
12
  The PayPal Server SDK provides integration access to the PayPal REST APIs. The API endpoints are divided into distinct controllers:
13
13
 
14
14
  - Orders Controller: [Orders API v2](https://developer.paypal.com/docs/api/orders/v2/)
15
- - Payments Controller: [Payments API v2](https://developer.paypal.com/docs/api/payments/v2
16
- - Vault Controller: [Payment Method Tokens API v3](https://developer.paypal.com/docs/api/payment-tokens/v3/) *Available in the US only.*
15
+ - Payments Controller: [Payments API v2](https://developer.paypal.com/docs/api/payments/v2)
16
+ - Vault Controller: [Payment Method Tokens API v3](https://developer.paypal.com/docs/api/payment-tokens/v3/) *Available in the US only.*
17
+ - Transaction Search Controller: [Transaction Search API v1](https://developer.paypal.com/docs/api/transaction-search/v1/)
18
+ - Subscriptions Controller: [Subscriptions API v1](https://developer.paypal.com/docs/api/subscriptions/v1/)
17
19
 
18
20
  ## Install the Package
19
21
 
20
22
  Install the gem from the command line:
21
23
 
22
24
  ```bash
23
- gem install paypal-server-sdk -v 1.1.0
25
+ gem install paypal-server-sdk -v 2.1.0
24
26
  ```
25
27
 
26
28
  Or add the gem to your Gemfile and run `bundle`:
27
29
 
28
30
  ```ruby
29
- gem 'paypal-server-sdk', '1.1.0'
31
+ gem 'paypal-server-sdk', '2.1.0'
30
32
  ```
31
33
 
32
- For additional gem details, see the [RubyGems page for the paypal-server-sdk gem](https://rubygems.org/gems/paypal-server-sdk/versions/1.1.0).
34
+ For additional gem details, see the [RubyGems page for the paypal-server-sdk gem](https://rubygems.org/gems/paypal-server-sdk/versions/2.1.0).
35
+
36
+ ## IRB Console Usage
37
+
38
+ You can explore the SDK interactively using IRB in two ways
39
+
40
+ ### 1. Use IRB with Installed Gem
41
+
42
+ Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and type the following command to start the irb console.
43
+
44
+ ```bash
45
+ irb
46
+ ```
47
+
48
+ Now you can load the SDK in the IRB
49
+
50
+ ```ruby
51
+ require 'paypal_server_sdk'
52
+ include PaypalServerSdk
53
+ ```
54
+
55
+ ### 2. Use IRB within SDK
56
+
57
+ Open your system terminal (Command Prompt, Git Bash or macOS Terminal) and navigate to the root folder of SDK.
58
+
59
+ ```
60
+ cd path/to/paypal_server_sdk
61
+ ```
62
+
63
+ Now you can start the preconfigured irb console by running the following command
64
+
65
+ ```bash
66
+ ruby bin/console
67
+ ```
68
+
69
+ **_Note:_** This automatically loads the SDK from lib/
33
70
 
34
71
  ## Initialize the API Client
35
72
 
36
- **_Note:_** Documentation for the client can be found [here.](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/client.md)
73
+ **_Note:_** Documentation for the client can be found [here.](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/client.md)
37
74
 
38
75
  The following parameters are configurable for the API Client:
39
76
 
@@ -49,13 +86,19 @@ The following parameters are configurable for the API Client:
49
86
  | retry_statuses | `Array` | A list of HTTP statuses to retry. <br> **Default: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524]** |
50
87
  | retry_methods | `Array` | A list of HTTP methods to retry. <br> **Default: %i[get put]** |
51
88
  | http_callback | `HttpCallBack` | The Http CallBack allows defining callables for pre and post API calls. |
52
- | logging_configuration | [`LoggingConfiguration`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/logging-configuration.md) | The SDK logging configuration for API calls |
53
- | client_credentials_auth_credentials | [`ClientCredentialsAuthCredentials`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/auth/oauth-2-client-credentials-grant.md) | The credential object for OAuth 2 Client Credentials Grant |
89
+ | proxy_settings | [`ProxySettings`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/proxy-settings.md) | Optional proxy configuration to route HTTP requests through a proxy server. |
90
+ | logging_configuration | [`LoggingConfiguration`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/logging-configuration.md) | The SDK logging configuration for API calls |
91
+ | client_credentials_auth_credentials | [`ClientCredentialsAuthCredentials`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/auth/oauth-2-client-credentials-grant.md) | The credential object for OAuth 2 Client Credentials Grant |
54
92
 
55
93
  The API client can be initialized as follows:
56
94
 
95
+ ### Code-Based Client Initialization
96
+
57
97
  ```ruby
58
- client = PaypalServerSdk::Client.new(
98
+ require 'paypal_server_sdk'
99
+ include PaypalServerSdk
100
+
101
+ client = Client.new(
59
102
  client_credentials_auth_credentials: ClientCredentialsAuthCredentials.new(
60
103
  o_auth_client_id: 'OAuthClientId',
61
104
  o_auth_client_secret: 'OAuthClientSecret'
@@ -73,6 +116,18 @@ client = PaypalServerSdk::Client.new(
73
116
  )
74
117
  ```
75
118
 
119
+ ### Environment-Based Client Initialization
120
+
121
+ ```ruby
122
+ require 'paypal_server_sdk'
123
+ include PaypalServerSdk
124
+
125
+ # Create client from environment
126
+ client = Client.from_env
127
+ ```
128
+
129
+ See the [`Environment-Based Client Initialization`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/environment-based-client-initialization.md) section for details.
130
+
76
131
  ## Environments
77
132
 
78
133
  The SDK can be configured to use a different environment for making API calls. Available environments are:
@@ -88,31 +143,35 @@ The SDK can be configured to use a different environment for making API calls. A
88
143
 
89
144
  This API uses the following authentication schemes.
90
145
 
91
- * [`Oauth2 (OAuth 2 Client Credentials Grant)`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/auth/oauth-2-client-credentials-grant.md)
146
+ * [`Oauth2 (OAuth 2 Client Credentials Grant)`](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/auth/oauth-2-client-credentials-grant.md)
92
147
 
93
148
  ## List of APIs
94
149
 
95
- * [Orders](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/controllers/orders.md)
96
- * [Payments](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/controllers/payments.md)
97
- * [Vault](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/controllers/vault.md)
150
+ * [Orders](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/controllers/orders.md)
151
+ * [Payments](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/controllers/payments.md)
152
+ * [Vault](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/controllers/vault.md)
153
+ * [Transaction Search](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/controllers/transaction-search.md)
154
+ * [Subscriptions](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/controllers/subscriptions.md)
98
155
 
99
156
  ## SDK Infrastructure
100
157
 
101
158
  ### Configuration
102
159
 
103
- * [AbstractLogger](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/abstract-logger.md)
104
- * [LoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/logging-configuration.md)
105
- * [RequestLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/request-logging-configuration.md)
106
- * [ResponseLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/response-logging-configuration.md)
160
+ * [ProxySettings](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/proxy-settings.md)
161
+ * [Environment-Based Client Initialization](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/environment-based-client-initialization.md)
162
+ * [AbstractLogger](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/abstract-logger.md)
163
+ * [LoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/logging-configuration.md)
164
+ * [RequestLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/request-logging-configuration.md)
165
+ * [ResponseLoggingConfiguration](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/response-logging-configuration.md)
107
166
 
108
167
  ### HTTP
109
168
 
110
- * [HttpResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/http-response.md)
111
- * [HttpRequest](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/http-request.md)
169
+ * [HttpResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/http-response.md)
170
+ * [HttpRequest](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/http-request.md)
112
171
 
113
172
  ### Utilities
114
173
 
115
- * [ApiResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/api-response.md)
116
- * [ApiHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/api-helper.md)
117
- * [DateTimeHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/1.1.0/doc/date-time-helper.md)
174
+ * [ApiResponse](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/api-response.md)
175
+ * [ApiHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/api-helper.md)
176
+ * [DateTimeHelper](https://www.github.com/paypal/PayPal-Ruby-Server-SDK/tree/2.1.0/doc/date-time-helper.md)
118
177
 
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Load the lib folder into Ruby's load path
4
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
5
+
6
+ # Require the gem
7
+ require 'paypal_server_sdk'
8
+
9
+ puts 'PaypalServerSdk SDK loaded!'
10
+ puts 'You can now create a client with: client = PaypalServerSdk::Client.new'
11
+ puts 'Or use from_env: client = PaypalServerSdk::Client.from_env'
12
+
13
+ # Start an interactive IRB session
14
+ require 'irb'
15
+ IRB.start
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # API utility class
@@ -1,13 +1,17 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # paypal_server_sdk client class.
8
8
  class Client
9
9
  include CoreLibrary
10
10
  attr_reader :config, :auth_managers
11
+
12
+ def user_agent_detail
13
+ config.user_agent_detail
14
+ end
11
15
 
12
16
  # Returns the configured authentication Oauth2 instance.
13
17
  def oauth2
@@ -32,6 +36,18 @@ module PaypalServerSdk
32
36
  @vault ||= VaultController.new @global_configuration
33
37
  end
34
38
 
39
+ # Access to transaction_search controller.
40
+ # @return [TransactionSearchController] Returns the controller instance.
41
+ def transaction_search
42
+ @transaction_search ||= TransactionSearchController.new @global_configuration
43
+ end
44
+
45
+ # Access to subscriptions controller.
46
+ # @return [SubscriptionsController] Returns the controller instance.
47
+ def subscriptions
48
+ @subscriptions ||= SubscriptionsController.new @global_configuration
49
+ end
50
+
35
51
  # Access to o_auth_authorization controller.
36
52
  # @return [OAuthAuthorizationController] Returns the controller instance.
37
53
  def o_auth_authorization
@@ -42,7 +58,7 @@ module PaypalServerSdk
42
58
  connection: nil, adapter: :net_http_persistent, timeout: 60,
43
59
  max_retries: 0, retry_interval: 1, backoff_factor: 2,
44
60
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
45
- retry_methods: %i[get put], http_callback: nil,
61
+ retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
46
62
  logging_configuration: nil, environment: Environment::SANDBOX,
47
63
  client_credentials_auth_credentials: nil, config: nil
48
64
  )
@@ -53,6 +69,7 @@ module PaypalServerSdk
53
69
  backoff_factor: backoff_factor,
54
70
  retry_statuses: retry_statuses,
55
71
  retry_methods: retry_methods, http_callback: http_callback,
72
+ proxy_settings: proxy_settings,
56
73
  logging_configuration: logging_configuration,
57
74
  environment: environment,
58
75
  client_credentials_auth_credentials: client_credentials_auth_credentials
@@ -81,5 +98,12 @@ module PaypalServerSdk
81
98
  @auth_managers['Oauth2'] = OAuth2.new(http_client_config.client_credentials_auth_credentials,
82
99
  global_config)
83
100
  end
101
+
102
+ # Creates a client directly from environment variables.
103
+ def self.from_env(**overrides)
104
+ default_config = Configuration.build_default_config_from_env
105
+ new_config = default_config.clone_with(**overrides)
106
+ new(config: new_config)
107
+ end
84
108
  end
85
109
  end
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # An enum for SDK environments.
@@ -12,6 +12,21 @@ module PaypalServerSdk
12
12
  PRODUCTION = 'Production'.freeze,
13
13
  SANDBOX = 'Sandbox'.freeze
14
14
  ].freeze
15
+
16
+ # Converts a string or symbol into a valid Environment constant.
17
+ def self.from_value(value, default_value = PRODUCTION)
18
+ return default_value if value.nil?
19
+
20
+ str = value.to_s.strip.downcase
21
+ case str
22
+ when 'production' then PRODUCTION
23
+ when 'sandbox' then SANDBOX
24
+
25
+ else
26
+ warn "[Environment] Unknown environment '#{value}', falling back to #{default_value} "
27
+ default_value
28
+ end
29
+ end
15
30
  end
16
31
 
17
32
  # An enum for API servers.
@@ -19,6 +34,13 @@ module PaypalServerSdk
19
34
  SERVER = [
20
35
  DEFAULT = 'default'.freeze
21
36
  ].freeze
37
+
38
+ # Converts a string or symbol into a valid Server constant.
39
+ def self.from_value(value, default_value = DEFAULT)
40
+ return default_value if value.nil?
41
+
42
+ default_value
43
+ end
22
44
  end
23
45
 
24
46
  # All configuration including auth info and base URI for the API access
@@ -35,15 +57,15 @@ module PaypalServerSdk
35
57
  connection: nil, adapter: :net_http_persistent, timeout: 60,
36
58
  max_retries: 0, retry_interval: 1, backoff_factor: 2,
37
59
  retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
38
- retry_methods: %i[get put], http_callback: nil,
60
+ retry_methods: %i[get put], http_callback: nil, proxy_settings: nil,
39
61
  logging_configuration: nil, environment: Environment::SANDBOX,
40
62
  client_credentials_auth_credentials: nil
41
63
  )
42
-
43
64
  super connection: connection, adapter: adapter, timeout: timeout,
44
65
  max_retries: max_retries, retry_interval: retry_interval,
45
66
  backoff_factor: backoff_factor, retry_statuses: retry_statuses,
46
67
  retry_methods: retry_methods, http_callback: http_callback,
68
+ proxy_settings: proxy_settings,
47
69
  logging_configuration: logging_configuration
48
70
 
49
71
  # Current API environment
@@ -53,7 +75,7 @@ module PaypalServerSdk
53
75
  @client_credentials_auth_credentials = client_credentials_auth_credentials
54
76
 
55
77
  # Initializing OAuth 2 Client Credentials Grant credentials with the provided auth parameters
56
- @client_credentials_auth_credentials = client_credentials_auth_credentials
78
+ @client_credentials_auth_credentials = client_credentials_auth_credentials
57
79
 
58
80
  # The Http Client to use for making requests.
59
81
  set_http_client CoreLibrary::FaradayClient.new(self)
@@ -62,8 +84,8 @@ module PaypalServerSdk
62
84
  def clone_with(connection: nil, adapter: nil, timeout: nil,
63
85
  max_retries: nil, retry_interval: nil, backoff_factor: nil,
64
86
  retry_statuses: nil, retry_methods: nil, http_callback: nil,
65
- logging_configuration: nil, environment: nil,
66
- client_credentials_auth_credentials: nil)
87
+ proxy_settings: nil, logging_configuration: nil,
88
+ environment: nil, client_credentials_auth_credentials: nil)
67
89
  connection ||= self.connection
68
90
  adapter ||= self.adapter
69
91
  timeout ||= self.timeout
@@ -73,15 +95,17 @@ module PaypalServerSdk
73
95
  retry_statuses ||= self.retry_statuses
74
96
  retry_methods ||= self.retry_methods
75
97
  http_callback ||= self.http_callback
98
+ proxy_settings ||= self.proxy_settings
76
99
  logging_configuration ||= self.logging_configuration
77
100
  environment ||= self.environment
78
- client_credentials_auth_credentials ||= client_credentials_auth_credentials
101
+ client_credentials_auth_credentials ||= self.client_credentials_auth_credentials
79
102
 
80
103
  Configuration.new(
81
104
  connection: connection, adapter: adapter, timeout: timeout,
82
105
  max_retries: max_retries, retry_interval: retry_interval,
83
106
  backoff_factor: backoff_factor, retry_statuses: retry_statuses,
84
107
  retry_methods: retry_methods, http_callback: http_callback,
108
+ proxy_settings: proxy_settings,
85
109
  logging_configuration: logging_configuration, environment: environment,
86
110
  client_credentials_auth_credentials: client_credentials_auth_credentials
87
111
  )
@@ -105,5 +129,49 @@ module PaypalServerSdk
105
129
  def get_base_uri(server = Server::DEFAULT)
106
130
  ENVIRONMENTS[environment][server].clone
107
131
  end
132
+
133
+ # Builds a Configuration instance using environment variables.
134
+ def self.build_default_config_from_env
135
+ # === Core environment ===
136
+ environment = Environment.from_value(ENV.fetch('ENVIRONMENT', 'sandbox'))
137
+ timeout = (ENV['TIMEOUT'] || 60).to_f
138
+ max_retries = (ENV['MAX_RETRIES'] || 0).to_i
139
+ retry_interval = (ENV['RETRY_INTERVAL'] || 1).to_f
140
+ backoff_factor = (ENV['BACKOFF_FACTOR'] || 2).to_f
141
+ retry_statuses = ENV.fetch('RETRY_STATUSES',
142
+ '[408, 413, 429, 500, 502, 503, 504, 521, 522, 524]').gsub(/[\[\]]/, '')
143
+ .split(',')
144
+ .map(&:strip)
145
+ .map do |item|
146
+ item.match?(/\A\d+\z/) ? item.to_i : item.downcase
147
+ end
148
+ retry_methods = ENV.fetch('RETRY_METHODS', '%i[get put]').gsub(/[\[\]]/, '')
149
+ .split(',')
150
+ .map(&:strip)
151
+ .map do |item|
152
+ item.match?(/\A\d+\z/) ? item.to_i : item.downcase
153
+ end
154
+
155
+ # === Authentication credentials ===
156
+ client_credentials_auth_credentials = ClientCredentialsAuthCredentials.from_env
157
+
158
+ # === Proxy settings ===
159
+ proxy_settings = ProxySettings.from_env
160
+ # === Logging Configuration ===
161
+ logging_configuration = LoggingConfiguration.from_env if LoggingConfiguration.any_logging_configured?
162
+
163
+ Configuration.new(
164
+ environment: environment,
165
+ timeout: timeout,
166
+ max_retries: max_retries,
167
+ retry_interval: retry_interval,
168
+ backoff_factor: backoff_factor,
169
+ retry_statuses: retry_statuses,
170
+ retry_methods: retry_methods,
171
+ client_credentials_auth_credentials: client_credentials_auth_credentials,
172
+ proxy_settings: proxy_settings,
173
+ logging_configuration: logging_configuration
174
+ )
175
+ end
108
176
  end
109
177
  end
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # BaseController.
@@ -10,7 +10,7 @@ module PaypalServerSdk
10
10
  attr_accessor :config, :http_call_back
11
11
 
12
12
  def self.user_agent
13
- 'PayPal REST API Ruby SDK, Version: 1.1.0, on OS {os-info}'
13
+ 'PayPal REST API Ruby SDK, Version: 2.1.0, on OS {os-info}'
14
14
  end
15
15
 
16
16
  def self.user_agent_parameters
@@ -31,13 +31,7 @@ module PaypalServerSdk
31
31
  @global_configuration = global_configuration
32
32
  @config = @global_configuration.client_configuration
33
33
  @http_call_back = @config.http_callback
34
- @api_call = ApiCall.new(@global_configuration)
35
- end
36
-
37
- # Creates a new builder for the Api Call instance.
38
- # @return [ApiCall] The instance of ApiCall.
39
- def new_api_call_builder
40
- @api_call.new_builder
34
+ @api_call = ApiCall.new(@global_configuration)
41
35
  end
42
36
 
43
37
  # Creates a new instance of the request builder.
@@ -1,7 +1,7 @@
1
1
  # paypal_server_sdk
2
2
  #
3
- # This file was automatically generated by APIMATIC v2.0
4
- # ( https://apimatic.io ).
3
+ # This file was automatically generated by APIMATIC v3.0
4
+ # ( https://www.apimatic.io ).
5
5
 
6
6
  module PaypalServerSdk
7
7
  # OAuthAuthorizationController
@@ -13,10 +13,10 @@ module PaypalServerSdk
13
13
  # space-delimited list.
14
14
  # @param [Hash] _field_parameters Additional optional form parameters are
15
15
  # supported by this endpoint.
16
- # @return [ApiResponse] the complete http response with raw body and status code.
16
+ # @return [ApiResponse] Complete http response with raw body and status code.
17
17
  def request_token(options = {},
18
18
  _field_parameters: nil)
19
- new_api_call_builder
19
+ @api_call
20
20
  .request(new_request_builder(HttpMethodEnum::POST,
21
21
  '/v1/oauth2/token',
22
22
  Server::DEFAULT)