plaid 14.11.1 → 14.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (843) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +3 -0
  3. data/Gemfile.lock +1 -1
  4. data/Makefile +1 -1
  5. data/lib/plaid/api/plaid_api.rb +206 -11
  6. data/lib/plaid/api_client.rb +2 -2
  7. data/lib/plaid/api_error.rb +1 -1
  8. data/lib/plaid/configuration.rb +1 -1
  9. data/lib/plaid/models/account_access.rb +1 -1
  10. data/lib/plaid/models/account_assets.rb +1 -1
  11. data/lib/plaid/models/account_assets_all_of.rb +1 -1
  12. data/lib/plaid/models/account_balance.rb +1 -1
  13. data/lib/plaid/models/account_base.rb +1 -1
  14. data/lib/plaid/models/account_filter.rb +1 -1
  15. data/lib/plaid/models/account_filters_response.rb +1 -1
  16. data/lib/plaid/models/account_identity.rb +1 -1
  17. data/lib/plaid/models/account_identity_all_of.rb +1 -1
  18. data/lib/plaid/models/account_product_access.rb +1 -1
  19. data/lib/plaid/models/account_product_access_nullable.rb +1 -1
  20. data/lib/plaid/models/account_selection_cardinality.rb +1 -1
  21. data/lib/plaid/models/account_subtype.rb +1 -1
  22. data/lib/plaid/models/account_type.rb +1 -1
  23. data/lib/plaid/models/accounts_balance_get_request.rb +1 -1
  24. data/lib/plaid/models/accounts_balance_get_request_options.rb +1 -1
  25. data/lib/plaid/models/accounts_get_request.rb +1 -1
  26. data/lib/plaid/models/accounts_get_request_options.rb +1 -1
  27. data/lib/plaid/models/accounts_get_response.rb +1 -1
  28. data/lib/plaid/models/ach_class.rb +1 -1
  29. data/lib/plaid/models/address.rb +1 -1
  30. data/lib/plaid/models/address_data.rb +1 -1
  31. data/lib/plaid/models/address_data_nullable.rb +1 -1
  32. data/lib/plaid/models/address_nullable.rb +1 -1
  33. data/lib/plaid/models/application.rb +1 -1
  34. data/lib/plaid/models/application_get_request.rb +1 -1
  35. data/lib/plaid/models/application_get_response.rb +1 -1
  36. data/lib/plaid/models/apr.rb +1 -1
  37. data/lib/plaid/models/asset_report.rb +1 -1
  38. data/lib/plaid/models/asset_report_audit_copy_create_request.rb +1 -1
  39. data/lib/plaid/models/asset_report_audit_copy_create_response.rb +1 -1
  40. data/lib/plaid/models/asset_report_audit_copy_get_request.rb +1 -1
  41. data/lib/plaid/models/asset_report_audit_copy_remove_request.rb +1 -1
  42. data/lib/plaid/models/asset_report_audit_copy_remove_response.rb +1 -1
  43. data/lib/plaid/models/asset_report_create_request.rb +1 -1
  44. data/lib/plaid/models/asset_report_create_request_options.rb +1 -1
  45. data/lib/plaid/models/asset_report_create_response.rb +1 -1
  46. data/lib/plaid/models/asset_report_filter_request.rb +1 -1
  47. data/lib/plaid/models/asset_report_filter_response.rb +1 -1
  48. data/lib/plaid/models/asset_report_get_request.rb +1 -1
  49. data/lib/plaid/models/asset_report_get_response.rb +1 -1
  50. data/lib/plaid/models/asset_report_item.rb +1 -1
  51. data/lib/plaid/models/asset_report_pdf_get_request.rb +1 -1
  52. data/lib/plaid/models/asset_report_refresh_request.rb +1 -1
  53. data/lib/plaid/models/asset_report_refresh_request_options.rb +1 -1
  54. data/lib/plaid/models/asset_report_refresh_response.rb +1 -1
  55. data/lib/plaid/models/asset_report_remove_request.rb +1 -1
  56. data/lib/plaid/models/asset_report_remove_response.rb +1 -1
  57. data/lib/plaid/models/asset_report_transaction.rb +3 -3
  58. data/lib/plaid/models/asset_report_transaction_all_of.rb +1 -1
  59. data/lib/plaid/models/asset_report_user.rb +1 -1
  60. data/lib/plaid/models/assets_error_webhook.rb +1 -1
  61. data/lib/plaid/models/assets_product_ready_webhook.rb +1 -1
  62. data/lib/plaid/models/auth_get_numbers.rb +1 -1
  63. data/lib/plaid/models/auth_get_request.rb +1 -1
  64. data/lib/plaid/models/auth_get_request_options.rb +1 -1
  65. data/lib/plaid/models/auth_get_response.rb +1 -1
  66. data/lib/plaid/models/auth_metadata.rb +1 -1
  67. data/lib/plaid/models/auth_supported_methods.rb +1 -1
  68. data/lib/plaid/models/automatically_verified_webhook.rb +1 -1
  69. data/lib/plaid/models/bank_initiated_return_risk.rb +1 -1
  70. data/lib/plaid/models/bank_transfer.rb +1 -1
  71. data/lib/plaid/models/bank_transfer_balance.rb +1 -1
  72. data/lib/plaid/models/bank_transfer_balance_get_request.rb +1 -1
  73. data/lib/plaid/models/bank_transfer_balance_get_response.rb +1 -1
  74. data/lib/plaid/models/bank_transfer_cancel_request.rb +1 -1
  75. data/lib/plaid/models/bank_transfer_cancel_response.rb +1 -1
  76. data/lib/plaid/models/bank_transfer_create_request.rb +1 -1
  77. data/lib/plaid/models/bank_transfer_create_response.rb +1 -1
  78. data/lib/plaid/models/bank_transfer_direction.rb +1 -1
  79. data/lib/plaid/models/bank_transfer_event.rb +6 -16
  80. data/lib/plaid/models/bank_transfer_event_list_request.rb +1 -1
  81. data/lib/plaid/models/bank_transfer_event_list_response.rb +1 -1
  82. data/lib/plaid/models/bank_transfer_event_sync_request.rb +1 -1
  83. data/lib/plaid/models/bank_transfer_event_sync_response.rb +1 -1
  84. data/lib/plaid/models/bank_transfer_event_type.rb +1 -3
  85. data/lib/plaid/models/bank_transfer_failure.rb +1 -1
  86. data/lib/plaid/models/bank_transfer_get_request.rb +1 -1
  87. data/lib/plaid/models/bank_transfer_get_response.rb +1 -1
  88. data/lib/plaid/models/bank_transfer_list_request.rb +1 -1
  89. data/lib/plaid/models/bank_transfer_list_response.rb +1 -1
  90. data/lib/plaid/models/bank_transfer_migrate_account_request.rb +1 -1
  91. data/lib/plaid/models/bank_transfer_migrate_account_response.rb +1 -1
  92. data/lib/plaid/models/bank_transfer_network.rb +1 -1
  93. data/lib/plaid/models/bank_transfer_status.rb +1 -1
  94. data/lib/plaid/models/bank_transfer_sweep.rb +1 -1
  95. data/lib/plaid/models/bank_transfer_sweep_get_request.rb +1 -1
  96. data/lib/plaid/models/bank_transfer_sweep_get_response.rb +1 -1
  97. data/lib/plaid/models/bank_transfer_sweep_list_request.rb +1 -1
  98. data/lib/plaid/models/bank_transfer_sweep_list_response.rb +1 -1
  99. data/lib/plaid/models/bank_transfer_type.rb +1 -1
  100. data/lib/plaid/models/bank_transfer_user.rb +1 -1
  101. data/lib/plaid/models/bank_transfers_events_update_webhook.rb +1 -1
  102. data/lib/plaid/models/categories_get_response.rb +1 -1
  103. data/lib/plaid/models/category.rb +1 -1
  104. data/lib/plaid/models/cause.rb +1 -1
  105. data/lib/plaid/models/connected_application.rb +1 -1
  106. data/lib/plaid/models/country_code.rb +1 -1
  107. data/lib/plaid/models/credit_card_liability.rb +1 -1
  108. data/lib/plaid/models/credit_filter.rb +2 -2
  109. data/lib/plaid/models/customer_initiated_return_risk.rb +1 -1
  110. data/lib/plaid/models/deductions.rb +1 -1
  111. data/lib/plaid/models/deductions_breakdown.rb +1 -1
  112. data/lib/plaid/models/deductions_total.rb +1 -1
  113. data/lib/plaid/models/default_update_webhook.rb +1 -1
  114. data/lib/plaid/models/deposit_switch_address_data.rb +1 -1
  115. data/lib/plaid/models/deposit_switch_alt_create_request.rb +1 -1
  116. data/lib/plaid/models/deposit_switch_alt_create_response.rb +1 -1
  117. data/lib/plaid/models/deposit_switch_create_request.rb +1 -1
  118. data/lib/plaid/models/deposit_switch_create_request_options.rb +1 -1
  119. data/lib/plaid/models/deposit_switch_create_response.rb +1 -1
  120. data/lib/plaid/models/deposit_switch_get_request.rb +1 -1
  121. data/lib/plaid/models/deposit_switch_get_response.rb +1 -1
  122. data/lib/plaid/models/deposit_switch_state_update_webhook.rb +1 -1
  123. data/lib/plaid/models/deposit_switch_target_account.rb +1 -1
  124. data/lib/plaid/models/deposit_switch_target_user.rb +1 -1
  125. data/lib/plaid/models/deposit_switch_token_create_request.rb +1 -1
  126. data/lib/plaid/models/deposit_switch_token_create_response.rb +1 -1
  127. data/lib/plaid/models/depository_filter.rb +2 -2
  128. data/lib/plaid/models/distribution_breakdown.rb +1 -1
  129. data/lib/plaid/models/doc_type.rb +2 -1
  130. data/lib/plaid/models/document_metadata.rb +1 -1
  131. data/lib/plaid/models/earnings.rb +1 -1
  132. data/lib/plaid/models/earnings_breakdown.rb +1 -1
  133. data/lib/plaid/models/earnings_breakdown_canonical_description.rb +1 -1
  134. data/lib/plaid/models/earnings_total.rb +1 -1
  135. data/lib/plaid/models/email.rb +1 -1
  136. data/lib/plaid/models/employee.rb +1 -1
  137. data/lib/plaid/models/employee_income_summary_field_string.rb +1 -1
  138. data/lib/plaid/models/employer.rb +1 -1
  139. data/lib/plaid/models/employer_income_summary_field_string.rb +1 -1
  140. data/lib/plaid/models/employer_verification.rb +1 -1
  141. data/lib/plaid/models/employers_search_request.rb +1 -1
  142. data/lib/plaid/models/employers_search_response.rb +1 -1
  143. data/lib/plaid/models/employment_details.rb +1 -1
  144. data/lib/plaid/models/employment_verification.rb +1 -1
  145. data/lib/plaid/models/employment_verification_get_request.rb +1 -1
  146. data/lib/plaid/models/employment_verification_get_response.rb +1 -1
  147. data/lib/plaid/models/employment_verification_status.rb +1 -1
  148. data/lib/plaid/models/error.rb +2 -2
  149. data/lib/plaid/models/external_payment_options.rb +1 -1
  150. data/lib/plaid/models/external_payment_refund_details.rb +1 -1
  151. data/lib/plaid/models/external_payment_schedule_base.rb +1 -1
  152. data/lib/plaid/models/external_payment_schedule_get.rb +1 -1
  153. data/lib/plaid/models/external_payment_schedule_request.rb +1 -1
  154. data/lib/plaid/models/health_incident.rb +1 -1
  155. data/lib/plaid/models/historical_balance.rb +1 -1
  156. data/lib/plaid/models/historical_update_webhook.rb +1 -1
  157. data/lib/plaid/models/holding.rb +1 -1
  158. data/lib/plaid/models/holdings_default_update_webhook.rb +1 -1
  159. data/lib/plaid/models/holdings_override.rb +1 -1
  160. data/lib/plaid/models/identity_get_request.rb +1 -1
  161. data/lib/plaid/models/identity_get_request_options.rb +1 -1
  162. data/lib/plaid/models/identity_get_response.rb +1 -1
  163. data/lib/plaid/models/incident_update.rb +1 -1
  164. data/lib/plaid/models/income_breakdown.rb +1 -1
  165. data/lib/plaid/models/income_breakdown_type.rb +1 -1
  166. data/lib/plaid/models/income_override.rb +1 -1
  167. data/lib/plaid/models/income_summary.rb +1 -1
  168. data/lib/plaid/models/income_summary_field_number.rb +1 -1
  169. data/lib/plaid/models/income_summary_field_string.rb +1 -1
  170. data/lib/plaid/models/income_verification_create_request.rb +1 -1
  171. data/lib/plaid/models/income_verification_create_request_options.rb +1 -1
  172. data/lib/plaid/models/income_verification_create_response.rb +1 -1
  173. data/lib/plaid/models/income_verification_documents_download_request.rb +1 -1
  174. data/lib/plaid/models/income_verification_paystub_get_request.rb +1 -1
  175. data/lib/plaid/models/income_verification_paystub_get_response.rb +1 -1
  176. data/lib/plaid/models/income_verification_paystubs_get_request.rb +1 -1
  177. data/lib/plaid/models/income_verification_paystubs_get_response.rb +1 -1
  178. data/lib/plaid/models/income_verification_precheck_confidence.rb +1 -1
  179. data/lib/plaid/models/income_verification_precheck_employer.rb +1 -1
  180. data/lib/plaid/models/income_verification_precheck_employer_address.rb +1 -1
  181. data/lib/plaid/models/income_verification_precheck_employer_address_data.rb +1 -1
  182. data/lib/plaid/models/income_verification_precheck_military_info.rb +1 -1
  183. data/lib/plaid/models/income_verification_precheck_request.rb +1 -1
  184. data/lib/plaid/models/income_verification_precheck_response.rb +1 -1
  185. data/lib/plaid/models/income_verification_precheck_user.rb +1 -1
  186. data/lib/plaid/models/income_verification_refresh_request.rb +1 -1
  187. data/lib/plaid/models/income_verification_refresh_response.rb +1 -1
  188. data/lib/plaid/models/income_verification_status_webhook.rb +1 -1
  189. data/lib/plaid/models/income_verification_summary_get_request.rb +1 -1
  190. data/lib/plaid/models/income_verification_summary_get_response.rb +1 -1
  191. data/lib/plaid/models/income_verification_taxforms_get_request.rb +1 -1
  192. data/lib/plaid/models/income_verification_taxforms_get_response.rb +1 -1
  193. data/lib/plaid/models/income_verification_webhook_status.rb +1 -1
  194. data/lib/plaid/models/inflow_model.rb +1 -1
  195. data/lib/plaid/models/initial_update_webhook.rb +1 -1
  196. data/lib/plaid/models/institution.rb +1 -1
  197. data/lib/plaid/models/institution_status.rb +1 -1
  198. data/lib/plaid/models/institutions_get_by_id_request.rb +22 -1
  199. data/lib/plaid/models/institutions_get_by_id_request_options.rb +1 -1
  200. data/lib/plaid/models/institutions_get_by_id_response.rb +1 -1
  201. data/lib/plaid/models/institutions_get_request.rb +31 -1
  202. data/lib/plaid/models/institutions_get_request_options.rb +21 -1
  203. data/lib/plaid/models/institutions_get_response.rb +1 -1
  204. data/lib/plaid/models/institutions_search_account_filter.rb +1 -1
  205. data/lib/plaid/models/institutions_search_payment_initiation_options.rb +2 -1
  206. data/lib/plaid/models/institutions_search_request.rb +21 -8
  207. data/lib/plaid/models/institutions_search_request_options.rb +4 -1
  208. data/lib/plaid/models/institutions_search_response.rb +1 -1
  209. data/lib/plaid/models/investment_filter.rb +2 -2
  210. data/lib/plaid/models/investment_holdings_get_request_options.rb +1 -1
  211. data/lib/plaid/models/investment_transaction.rb +1 -1
  212. data/lib/plaid/models/investments_default_update_webhook.rb +1 -1
  213. data/lib/plaid/models/investments_holdings_get_request.rb +1 -1
  214. data/lib/plaid/models/investments_holdings_get_response.rb +1 -1
  215. data/lib/plaid/models/investments_transactions_get_request.rb +1 -1
  216. data/lib/plaid/models/investments_transactions_get_request_options.rb +1 -1
  217. data/lib/plaid/models/investments_transactions_get_response.rb +1 -1
  218. data/lib/plaid/models/investments_transactions_override.rb +1 -1
  219. data/lib/plaid/models/item.rb +1 -1
  220. data/lib/plaid/models/item_access_token_invalidate_request.rb +1 -1
  221. data/lib/plaid/models/item_access_token_invalidate_response.rb +1 -1
  222. data/lib/plaid/models/item_application_list_request.rb +1 -1
  223. data/lib/plaid/models/item_application_list_response.rb +1 -1
  224. data/lib/plaid/models/item_application_list_user_auth.rb +1 -1
  225. data/lib/plaid/models/item_application_scopes_update_request.rb +1 -1
  226. data/lib/plaid/models/item_application_scopes_update_response.rb +1 -1
  227. data/lib/plaid/models/item_error_webhook.rb +1 -1
  228. data/lib/plaid/models/item_get_request.rb +1 -1
  229. data/lib/plaid/models/item_get_response.rb +1 -1
  230. data/lib/plaid/models/item_import_request.rb +1 -1
  231. data/lib/plaid/models/item_import_request_options.rb +1 -1
  232. data/lib/plaid/models/item_import_request_user_auth.rb +1 -1
  233. data/lib/plaid/models/item_import_response.rb +1 -1
  234. data/lib/plaid/models/item_product_ready_webhook.rb +1 -1
  235. data/lib/plaid/models/item_public_token_create_request.rb +1 -1
  236. data/lib/plaid/models/item_public_token_create_response.rb +1 -1
  237. data/lib/plaid/models/item_public_token_exchange_request.rb +1 -1
  238. data/lib/plaid/models/item_public_token_exchange_response.rb +1 -1
  239. data/lib/plaid/models/item_remove_request.rb +1 -1
  240. data/lib/plaid/models/item_remove_response.rb +1 -1
  241. data/lib/plaid/models/item_status.rb +1 -1
  242. data/lib/plaid/models/item_status_investments.rb +1 -1
  243. data/lib/plaid/models/item_status_last_webhook.rb +1 -1
  244. data/lib/plaid/models/item_status_nullable.rb +1 -1
  245. data/lib/plaid/models/item_status_transactions.rb +1 -1
  246. data/lib/plaid/models/item_webhook_update_request.rb +1 -1
  247. data/lib/plaid/models/item_webhook_update_response.rb +1 -1
  248. data/lib/plaid/models/jwk_public_key.rb +1 -1
  249. data/lib/plaid/models/jwt_header.rb +1 -1
  250. data/lib/plaid/models/liabilities_default_update_webhook.rb +1 -1
  251. data/lib/plaid/models/liabilities_get_request.rb +1 -1
  252. data/lib/plaid/models/liabilities_get_request_options.rb +1 -1
  253. data/lib/plaid/models/liabilities_get_response.rb +1 -1
  254. data/lib/plaid/models/liabilities_object.rb +1 -1
  255. data/lib/plaid/models/liability_override.rb +1 -1
  256. data/lib/plaid/models/link_token_account_filters.rb +2 -2
  257. data/lib/plaid/models/link_token_create_request.rb +2 -2
  258. data/lib/plaid/models/link_token_create_request_account_subtypes.rb +2 -2
  259. data/lib/plaid/models/link_token_create_request_auth.rb +1 -1
  260. data/lib/plaid/models/link_token_create_request_deposit_switch.rb +1 -1
  261. data/lib/plaid/models/link_token_create_request_income_verification.rb +1 -1
  262. data/lib/plaid/models/link_token_create_request_payment_initiation.rb +1 -1
  263. data/lib/plaid/models/link_token_create_request_transfer.rb +1 -1
  264. data/lib/plaid/models/link_token_create_request_update.rb +1 -1
  265. data/lib/plaid/models/link_token_create_request_user.rb +1 -1
  266. data/lib/plaid/models/link_token_create_response.rb +1 -1
  267. data/lib/plaid/models/link_token_eu_config.rb +1 -1
  268. data/lib/plaid/models/link_token_get_metadata_response.rb +1 -1
  269. data/lib/plaid/models/link_token_get_request.rb +1 -1
  270. data/lib/plaid/models/link_token_get_response.rb +1 -1
  271. data/lib/plaid/models/loan_filter.rb +2 -2
  272. data/lib/plaid/models/location.rb +1 -1
  273. data/lib/plaid/models/meta.rb +1 -1
  274. data/lib/plaid/models/mfa.rb +1 -1
  275. data/lib/plaid/models/mortgage_interest_rate.rb +1 -1
  276. data/lib/plaid/models/mortgage_liability.rb +1 -1
  277. data/lib/plaid/models/mortgage_property_address.rb +1 -1
  278. data/lib/plaid/models/net_pay.rb +1 -1
  279. data/lib/plaid/models/new_accounts_available_webhook.rb +1 -1
  280. data/lib/plaid/models/numbers.rb +1 -1
  281. data/lib/plaid/models/numbers_ach.rb +1 -1
  282. data/lib/plaid/models/numbers_ach_nullable.rb +1 -1
  283. data/lib/plaid/models/numbers_bacs.rb +1 -1
  284. data/lib/plaid/models/numbers_bacs_nullable.rb +1 -1
  285. data/lib/plaid/models/numbers_eft.rb +1 -1
  286. data/lib/plaid/models/numbers_eft_nullable.rb +1 -1
  287. data/lib/plaid/models/numbers_international.rb +1 -1
  288. data/lib/plaid/models/numbers_international_nullable.rb +1 -1
  289. data/lib/plaid/models/override_account_type.rb +1 -1
  290. data/lib/plaid/models/override_accounts.rb +1 -1
  291. data/lib/plaid/models/owner.rb +1 -1
  292. data/lib/plaid/models/owner_override.rb +1 -1
  293. data/lib/plaid/models/pay.rb +1 -27
  294. data/lib/plaid/models/pay_frequency.rb +1 -1
  295. data/lib/plaid/models/pay_frequency_value.rb +1 -1
  296. data/lib/plaid/models/pay_period_details.rb +1 -1
  297. data/lib/plaid/models/payment_amount.rb +1 -1
  298. data/lib/plaid/models/payment_initiation_address.rb +1 -1
  299. data/lib/plaid/models/payment_initiation_metadata.rb +2 -2
  300. data/lib/plaid/models/payment_initiation_optional_restriction_bacs.rb +1 -1
  301. data/lib/plaid/models/payment_initiation_payment.rb +1 -1
  302. data/lib/plaid/models/payment_initiation_payment_create_request.rb +1 -1
  303. data/lib/plaid/models/payment_initiation_payment_create_response.rb +1 -1
  304. data/lib/plaid/models/payment_initiation_payment_get_request.rb +1 -1
  305. data/lib/plaid/models/payment_initiation_payment_get_response.rb +1 -1
  306. data/lib/plaid/models/payment_initiation_payment_list_request.rb +1 -1
  307. data/lib/plaid/models/payment_initiation_payment_list_response.rb +1 -1
  308. data/lib/plaid/models/payment_initiation_payment_reverse_request.rb +1 -1
  309. data/lib/plaid/models/payment_initiation_payment_reverse_response.rb +1 -1
  310. data/lib/plaid/models/payment_initiation_payment_status.rb +1 -1
  311. data/lib/plaid/models/payment_initiation_payment_token_create_request.rb +1 -1
  312. data/lib/plaid/models/payment_initiation_payment_token_create_response.rb +1 -1
  313. data/lib/plaid/models/payment_initiation_recipient.rb +1 -1
  314. data/lib/plaid/models/payment_initiation_recipient_create_request.rb +1 -1
  315. data/lib/plaid/models/payment_initiation_recipient_create_response.rb +1 -1
  316. data/lib/plaid/models/payment_initiation_recipient_get_request.rb +1 -1
  317. data/lib/plaid/models/payment_initiation_recipient_get_response.rb +1 -1
  318. data/lib/plaid/models/payment_initiation_recipient_get_response_all_of.rb +1 -1
  319. data/lib/plaid/models/payment_initiation_recipient_list_request.rb +1 -1
  320. data/lib/plaid/models/payment_initiation_recipient_list_response.rb +1 -1
  321. data/lib/plaid/models/payment_initiation_refund.rb +1 -1
  322. data/lib/plaid/models/payment_initiation_standing_order_metadata.rb +1 -1
  323. data/lib/plaid/models/payment_meta.rb +1 -1
  324. data/lib/plaid/models/payment_schedule_interval.rb +1 -1
  325. data/lib/plaid/models/payment_scheme.rb +1 -1
  326. data/lib/plaid/models/payment_status_update_webhook.rb +3 -51
  327. data/lib/plaid/models/paystub.rb +1 -1
  328. data/lib/plaid/models/paystub_address.rb +1 -1
  329. data/lib/plaid/models/paystub_deduction.rb +1 -1
  330. data/lib/plaid/models/paystub_details.rb +1 -1
  331. data/lib/plaid/models/paystub_employer.rb +1 -1
  332. data/lib/plaid/models/paystub_override.rb +1 -1
  333. data/lib/plaid/models/paystub_override_employee.rb +1 -1
  334. data/lib/plaid/models/paystub_override_employee_address.rb +1 -1
  335. data/lib/plaid/models/paystub_override_employer.rb +1 -1
  336. data/lib/plaid/models/paystub_pay_frequency.rb +1 -1
  337. data/lib/plaid/models/paystub_verification.rb +1 -1
  338. data/lib/plaid/models/paystub_verification_status.rb +1 -1
  339. data/lib/plaid/models/paystub_ytd_details.rb +1 -1
  340. data/lib/plaid/models/pending_expiration_webhook.rb +1 -1
  341. data/lib/plaid/models/personal_finance_category.rb +1 -1
  342. data/lib/plaid/models/phone_number.rb +1 -1
  343. data/lib/plaid/models/plaid_error.rb +2 -2
  344. data/lib/plaid/models/platform_ids.rb +1 -1
  345. data/lib/plaid/models/processor_apex_processor_token_create_request.rb +1 -1
  346. data/lib/plaid/models/processor_auth_get_request.rb +1 -1
  347. data/lib/plaid/models/processor_auth_get_response.rb +1 -1
  348. data/lib/plaid/models/processor_balance_get_request.rb +1 -1
  349. data/lib/plaid/models/processor_balance_get_request_options.rb +1 -1
  350. data/lib/plaid/models/processor_balance_get_response.rb +1 -1
  351. data/lib/plaid/models/processor_bank_transfer_create_request.rb +1 -1
  352. data/lib/plaid/models/processor_bank_transfer_create_response.rb +1 -1
  353. data/lib/plaid/models/processor_identity_get_request.rb +1 -1
  354. data/lib/plaid/models/processor_identity_get_response.rb +1 -1
  355. data/lib/plaid/models/processor_number.rb +1 -1
  356. data/lib/plaid/models/processor_stripe_bank_account_token_create_request.rb +1 -1
  357. data/lib/plaid/models/processor_stripe_bank_account_token_create_response.rb +1 -1
  358. data/lib/plaid/models/processor_token_create_request.rb +1 -1
  359. data/lib/plaid/models/processor_token_create_response.rb +1 -1
  360. data/lib/plaid/models/product_access.rb +1 -1
  361. data/lib/plaid/models/product_status.rb +1 -1
  362. data/lib/plaid/models/product_status_breakdown.rb +1 -1
  363. data/lib/plaid/models/products.rb +1 -1
  364. data/lib/plaid/models/projected_income_summary_field_number.rb +1 -1
  365. data/lib/plaid/models/pslf_status.rb +1 -1
  366. data/lib/plaid/models/recaptcha_required_error.rb +1 -1
  367. data/lib/plaid/models/recipient_bacs.rb +1 -1
  368. data/lib/plaid/models/recipient_bacs_nullable.rb +1 -1
  369. data/lib/plaid/models/recurring_transaction_frequency.rb +1 -1
  370. data/lib/plaid/models/removed_transaction.rb +1 -1
  371. data/lib/plaid/models/requested_scopes.rb +1 -1
  372. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_request.rb +1 -1
  373. data/lib/plaid/models/sandbox_bank_transfer_fire_webhook_response.rb +1 -1
  374. data/lib/plaid/models/sandbox_bank_transfer_simulate_request.rb +1 -1
  375. data/lib/plaid/models/sandbox_bank_transfer_simulate_response.rb +1 -1
  376. data/lib/plaid/models/sandbox_income_fire_webhook_request.rb +1 -1
  377. data/lib/plaid/models/sandbox_income_fire_webhook_response.rb +1 -1
  378. data/lib/plaid/models/sandbox_item_fire_webhook_request.rb +4 -4
  379. data/lib/plaid/models/sandbox_item_fire_webhook_response.rb +1 -1
  380. data/lib/plaid/models/sandbox_item_reset_login_request.rb +1 -1
  381. data/lib/plaid/models/sandbox_item_reset_login_response.rb +1 -1
  382. data/lib/plaid/models/sandbox_item_set_verification_status_request.rb +1 -1
  383. data/lib/plaid/models/sandbox_item_set_verification_status_response.rb +1 -1
  384. data/lib/plaid/models/sandbox_oauth_select_accounts_request.rb +1 -1
  385. data/lib/plaid/models/sandbox_processor_token_create_request.rb +1 -1
  386. data/lib/plaid/models/sandbox_processor_token_create_request_options.rb +1 -1
  387. data/lib/plaid/models/sandbox_processor_token_create_response.rb +1 -1
  388. data/lib/plaid/models/sandbox_public_token_create_request.rb +1 -1
  389. data/lib/plaid/models/sandbox_public_token_create_request_options.rb +1 -1
  390. data/lib/plaid/models/sandbox_public_token_create_request_options_transactions.rb +1 -1
  391. data/lib/plaid/models/sandbox_public_token_create_response.rb +1 -1
  392. data/lib/plaid/models/sandbox_transfer_repayment_simulate_request.rb +230 -0
  393. data/lib/plaid/models/sandbox_transfer_repayment_simulate_response.rb +225 -0
  394. data/lib/plaid/models/sandbox_transfer_simulate_request.rb +1 -1
  395. data/lib/plaid/models/sandbox_transfer_simulate_response.rb +1 -1
  396. data/lib/plaid/models/sandbox_transfer_sweep_simulate_request.rb +1 -1
  397. data/lib/plaid/models/sandbox_transfer_sweep_simulate_response.rb +1 -1
  398. data/lib/plaid/models/scopes.rb +1 -1
  399. data/lib/plaid/models/scopes_context.rb +1 -1
  400. data/lib/plaid/models/scopes_nullable.rb +1 -1
  401. data/lib/plaid/models/security.rb +1 -1
  402. data/lib/plaid/models/security_override.rb +1 -1
  403. data/lib/plaid/models/sender_bacs_nullable.rb +1 -1
  404. data/lib/plaid/models/servicer_address_data.rb +1 -1
  405. data/lib/plaid/models/signal_address_data.rb +1 -1
  406. data/lib/plaid/models/signal_decision_report_request.rb +1 -1
  407. data/lib/plaid/models/signal_decision_report_response.rb +1 -1
  408. data/lib/plaid/models/signal_device.rb +1 -1
  409. data/lib/plaid/models/signal_evaluate_core_attributes.rb +1 -1
  410. data/lib/plaid/models/signal_evaluate_request.rb +1 -1
  411. data/lib/plaid/models/signal_evaluate_response.rb +1 -1
  412. data/lib/plaid/models/signal_person_name.rb +1 -1
  413. data/lib/plaid/models/signal_return_report_request.rb +1 -1
  414. data/lib/plaid/models/signal_return_report_response.rb +1 -1
  415. data/lib/plaid/models/signal_scores.rb +1 -1
  416. data/lib/plaid/models/signal_user.rb +1 -1
  417. data/lib/plaid/models/simulated_transfer_sweep.rb +1 -1
  418. data/lib/plaid/models/standalone_account_type.rb +2 -2
  419. data/lib/plaid/models/standalone_currency_code_list.rb +1 -1
  420. data/lib/plaid/models/standalone_investment_transaction_type.rb +1 -1
  421. data/lib/plaid/models/student_loan.rb +1 -1
  422. data/lib/plaid/models/student_loan_repayment_model.rb +1 -1
  423. data/lib/plaid/models/student_loan_status.rb +1 -1
  424. data/lib/plaid/models/student_repayment_plan.rb +1 -1
  425. data/lib/plaid/models/taxform.rb +1 -1
  426. data/lib/plaid/models/taxpayer_id.rb +1 -1
  427. data/lib/plaid/models/total.rb +1 -1
  428. data/lib/plaid/models/total_canonical_description.rb +1 -1
  429. data/lib/plaid/models/transaction.rb +3 -3
  430. data/lib/plaid/models/transaction_all_of.rb +1 -1
  431. data/lib/plaid/models/transaction_base.rb +3 -3
  432. data/lib/plaid/models/transaction_code.rb +1 -1
  433. data/lib/plaid/models/transaction_data.rb +1 -1
  434. data/lib/plaid/models/transaction_override.rb +1 -1
  435. data/lib/plaid/models/transaction_stream.rb +1 -1
  436. data/lib/plaid/models/transaction_stream_amount.rb +1 -1
  437. data/lib/plaid/models/transactions_get_request.rb +1 -1
  438. data/lib/plaid/models/transactions_get_request_options.rb +1 -1
  439. data/lib/plaid/models/transactions_get_response.rb +1 -1
  440. data/lib/plaid/models/transactions_recurring_get_request.rb +1 -1
  441. data/lib/plaid/models/transactions_recurring_get_response.rb +1 -1
  442. data/lib/plaid/models/transactions_refresh_request.rb +1 -1
  443. data/lib/plaid/models/transactions_refresh_response.rb +1 -1
  444. data/lib/plaid/models/transactions_removed_webhook.rb +1 -1
  445. data/lib/plaid/models/transactions_sync_request.rb +1 -1
  446. data/lib/plaid/models/transactions_sync_response.rb +1 -1
  447. data/lib/plaid/models/transfer.rb +22 -2
  448. data/lib/plaid/models/transfer_authorization.rb +23 -3
  449. data/lib/plaid/models/transfer_authorization_create_request.rb +1 -1
  450. data/lib/plaid/models/transfer_authorization_create_response.rb +1 -1
  451. data/lib/plaid/models/transfer_authorization_decision_rationale.rb +1 -1
  452. data/lib/plaid/models/transfer_authorization_device.rb +1 -1
  453. data/lib/plaid/models/transfer_authorization_guarantee_decision.rb +40 -0
  454. data/lib/plaid/models/transfer_authorization_guarantee_decision_rationale.rb +274 -0
  455. data/lib/plaid/models/transfer_authorization_proposed_transfer.rb +1 -1
  456. data/lib/plaid/models/transfer_cancel_request.rb +1 -1
  457. data/lib/plaid/models/transfer_cancel_response.rb +1 -1
  458. data/lib/plaid/models/transfer_create_request.rb +1 -1
  459. data/lib/plaid/models/transfer_create_response.rb +1 -1
  460. data/lib/plaid/models/transfer_event.rb +1 -1
  461. data/lib/plaid/models/transfer_event_list_request.rb +1 -1
  462. data/lib/plaid/models/transfer_event_list_response.rb +1 -1
  463. data/lib/plaid/models/transfer_event_sync_request.rb +1 -1
  464. data/lib/plaid/models/transfer_event_sync_response.rb +1 -1
  465. data/lib/plaid/models/transfer_event_type.rb +1 -1
  466. data/lib/plaid/models/transfer_failure.rb +1 -1
  467. data/lib/plaid/models/transfer_get_request.rb +1 -1
  468. data/lib/plaid/models/transfer_get_response.rb +1 -1
  469. data/lib/plaid/models/transfer_intent_create.rb +1 -1
  470. data/lib/plaid/models/transfer_intent_create_mode.rb +1 -1
  471. data/lib/plaid/models/transfer_intent_create_request.rb +1 -1
  472. data/lib/plaid/models/transfer_intent_create_response.rb +1 -1
  473. data/lib/plaid/models/transfer_intent_get.rb +1 -1
  474. data/lib/plaid/models/transfer_intent_get_failure_reason.rb +1 -1
  475. data/lib/plaid/models/transfer_intent_get_request.rb +1 -1
  476. data/lib/plaid/models/transfer_intent_get_response.rb +1 -1
  477. data/lib/plaid/models/transfer_list_request.rb +1 -1
  478. data/lib/plaid/models/transfer_list_response.rb +1 -1
  479. data/lib/plaid/models/transfer_network.rb +1 -1
  480. data/lib/plaid/models/transfer_repayment.rb +270 -0
  481. data/lib/plaid/models/transfer_repayment_list_request.rb +320 -0
  482. data/lib/plaid/models/{bank_transfer_receiver_details.rb → transfer_repayment_list_response.rb} +33 -47
  483. data/lib/plaid/models/transfer_repayment_return.rb +291 -0
  484. data/lib/plaid/models/transfer_repayment_return_list_request.rb +308 -0
  485. data/lib/plaid/models/transfer_repayment_return_list_response.rb +241 -0
  486. data/lib/plaid/models/transfer_status.rb +1 -1
  487. data/lib/plaid/models/transfer_sweep.rb +1 -1
  488. data/lib/plaid/models/transfer_sweep_get_request.rb +1 -1
  489. data/lib/plaid/models/transfer_sweep_get_response.rb +1 -1
  490. data/lib/plaid/models/transfer_sweep_list_request.rb +1 -1
  491. data/lib/plaid/models/transfer_sweep_list_response.rb +1 -1
  492. data/lib/plaid/models/transfer_sweep_status.rb +1 -1
  493. data/lib/plaid/models/transfer_type.rb +1 -1
  494. data/lib/plaid/models/transfer_user_address_in_request.rb +1 -1
  495. data/lib/plaid/models/transfer_user_address_in_response.rb +1 -1
  496. data/lib/plaid/models/transfer_user_in_request.rb +1 -1
  497. data/lib/plaid/models/transfer_user_in_response.rb +1 -1
  498. data/lib/plaid/models/user_custom_password.rb +1 -1
  499. data/lib/plaid/models/user_permission_revoked_webhook.rb +1 -1
  500. data/lib/plaid/models/verification_attribute.rb +1 -1
  501. data/lib/plaid/models/verification_expired_webhook.rb +1 -1
  502. data/lib/plaid/models/verification_refresh_status.rb +1 -1
  503. data/lib/plaid/models/verification_status.rb +1 -1
  504. data/lib/plaid/models/w2.rb +1 -1
  505. data/lib/plaid/models/w2_box12.rb +1 -1
  506. data/lib/plaid/models/w2_state_and_local_wages.rb +1 -1
  507. data/lib/plaid/models/wallet_balance.rb +1 -1
  508. data/lib/plaid/models/wallet_get_request.rb +1 -1
  509. data/lib/plaid/models/wallet_get_response.rb +1 -1
  510. data/lib/plaid/models/wallet_transaction.rb +1 -1
  511. data/lib/plaid/models/wallet_transaction_amount.rb +1 -1
  512. data/lib/plaid/models/wallet_transaction_counterparty.rb +1 -1
  513. data/lib/plaid/models/wallet_transaction_counterparty_bacs.rb +1 -1
  514. data/lib/plaid/models/wallet_transaction_counterparty_numbers.rb +1 -1
  515. data/lib/plaid/models/wallet_transaction_execute_request.rb +1 -1
  516. data/lib/plaid/models/wallet_transaction_execute_response.rb +1 -1
  517. data/lib/plaid/models/wallet_transaction_status.rb +1 -1
  518. data/lib/plaid/models/wallet_transactions_list_request.rb +1 -1
  519. data/lib/plaid/models/wallet_transactions_list_response.rb +1 -1
  520. data/lib/plaid/models/warning.rb +1 -1
  521. data/lib/plaid/models/webhook_update_acknowledged_webhook.rb +1 -1
  522. data/lib/plaid/models/webhook_verification_key_get_request.rb +1 -1
  523. data/lib/plaid/models/webhook_verification_key_get_response.rb +1 -1
  524. data/lib/plaid/models/ytd_gross_income_summary_field_number.rb +1 -1
  525. data/lib/plaid/models/ytd_net_income_summary_field_number.rb +1 -1
  526. data/lib/plaid/version.rb +2 -2
  527. data/lib/plaid.rb +11 -2
  528. data/plaid.gemspec +1 -1
  529. data/vendor/bundle/ruby/2.6.0/cache/faraday-1.8.0.gem +0 -0
  530. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/CHANGELOG.md +380 -0
  531. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/LICENSE.md +20 -0
  532. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/README.md +53 -0
  533. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/Rakefile +7 -0
  534. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/examples/client_spec.rb +97 -0
  535. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/examples/client_test.rb +118 -0
  536. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/adapter/test.rb +262 -0
  537. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/adapter/typhoeus.rb +15 -0
  538. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/adapter.rb +105 -0
  539. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/adapter_registry.rb +30 -0
  540. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/autoload.rb +87 -0
  541. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/connection.rb +642 -0
  542. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/dependency_loader.rb +37 -0
  543. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/encoders/flat_params_encoder.rb +105 -0
  544. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/encoders/nested_params_encoder.rb +176 -0
  545. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/error.rb +152 -0
  546. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/file_part.rb +128 -0
  547. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/logging/formatter.rb +105 -0
  548. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/methods.rb +6 -0
  549. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/middleware.rb +31 -0
  550. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/middleware_registry.rb +129 -0
  551. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options/connection_options.rb +22 -0
  552. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options/env.rb +181 -0
  553. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options/proxy_options.rb +32 -0
  554. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options/request_options.rb +22 -0
  555. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options/ssl_options.rb +59 -0
  556. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/options.rb +218 -0
  557. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/param_part.rb +53 -0
  558. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/parameters.rb +5 -0
  559. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/rack_builder.rb +249 -0
  560. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/authorization.rb +62 -0
  561. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/basic_authentication.rb +20 -0
  562. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/instrumentation.rb +54 -0
  563. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/multipart.rb +106 -0
  564. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/retry.rb +239 -0
  565. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/token_authentication.rb +20 -0
  566. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request/url_encoded.rb +56 -0
  567. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/request.rb +156 -0
  568. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/response/logger.rb +33 -0
  569. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/response/raise_error.rb +56 -0
  570. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/response.rb +101 -0
  571. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/utils/headers.rb +139 -0
  572. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/utils/params_hash.rb +61 -0
  573. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/utils.rb +117 -0
  574. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday/version.rb +5 -0
  575. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/lib/faraday.rb +185 -0
  576. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/external_adapters/faraday_specs_setup.rb +14 -0
  577. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/em_http_spec.rb +49 -0
  578. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/em_synchrony_spec.rb +18 -0
  579. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/excon_spec.rb +49 -0
  580. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/httpclient_spec.rb +73 -0
  581. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/net_http_spec.rb +64 -0
  582. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/patron_spec.rb +18 -0
  583. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/rack_spec.rb +8 -0
  584. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/test_spec.rb +377 -0
  585. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter/typhoeus_spec.rb +7 -0
  586. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter_registry_spec.rb +28 -0
  587. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/adapter_spec.rb +55 -0
  588. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/composite_read_io_spec.rb +80 -0
  589. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/connection_spec.rb +736 -0
  590. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/error_spec.rb +60 -0
  591. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/middleware_spec.rb +52 -0
  592. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/options/env_spec.rb +70 -0
  593. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/options/options_spec.rb +297 -0
  594. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/options/proxy_options_spec.rb +44 -0
  595. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/options/request_options_spec.rb +19 -0
  596. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/params_encoders/flat_spec.rb +42 -0
  597. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/params_encoders/nested_spec.rb +142 -0
  598. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/rack_builder_spec.rb +345 -0
  599. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request/authorization_spec.rb +96 -0
  600. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request/instrumentation_spec.rb +76 -0
  601. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request/multipart_spec.rb +302 -0
  602. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request/retry_spec.rb +242 -0
  603. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request/url_encoded_spec.rb +83 -0
  604. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/request_spec.rb +120 -0
  605. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/response/logger_spec.rb +220 -0
  606. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/response/middleware_spec.rb +68 -0
  607. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/response/raise_error_spec.rb +169 -0
  608. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/response_spec.rb +75 -0
  609. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/utils/headers_spec.rb +82 -0
  610. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday/utils_spec.rb +56 -0
  611. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/faraday_spec.rb +37 -0
  612. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/spec_helper.rb +132 -0
  613. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/disabling_stub.rb +14 -0
  614. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/fake_safe_buffer.rb +15 -0
  615. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/helper_methods.rb +133 -0
  616. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/shared_examples/adapter.rb +105 -0
  617. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/shared_examples/params_encoder.rb +18 -0
  618. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/shared_examples/request_method.rb +262 -0
  619. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/streaming_response_checker.rb +35 -0
  620. data/vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/webmock_rack_app.rb +68 -0
  621. data/vendor/bundle/ruby/2.6.0/specifications/faraday-1.8.0.gemspec +0 -0
  622. metadata +105 -224
  623. data/doc/rdoc/.DS_Store +0 -0
  624. data/doc/rdoc/apple-touch-icon.png +0 -0
  625. data/doc/rdoc/classes/Object.html +0 -118
  626. data/doc/rdoc/classes/Plaid/APIError.html +0 -97
  627. data/doc/rdoc/classes/Plaid/AccessToken/InvalidateResponse.html +0 -110
  628. data/doc/rdoc/classes/Plaid/AccessToken.html +0 -211
  629. data/doc/rdoc/classes/Plaid/Accounts.html +0 -257
  630. data/doc/rdoc/classes/Plaid/AccountsResponse.html +0 -119
  631. data/doc/rdoc/classes/Plaid/Apex/ProcessorToken.html +0 -205
  632. data/doc/rdoc/classes/Plaid/Apex.html +0 -149
  633. data/doc/rdoc/classes/Plaid/AssetReport.html +0 -683
  634. data/doc/rdoc/classes/Plaid/AssetReportCreateResponse.html +0 -118
  635. data/doc/rdoc/classes/Plaid/AssetReportFilterResponse.html +0 -96
  636. data/doc/rdoc/classes/Plaid/AssetReportGetResponse.html +0 -118
  637. data/doc/rdoc/classes/Plaid/AssetReportRefreshResponse.html +0 -96
  638. data/doc/rdoc/classes/Plaid/AssetReportRemoveResponse.html +0 -110
  639. data/doc/rdoc/classes/Plaid/AuditCopyCreateResponse.html +0 -110
  640. data/doc/rdoc/classes/Plaid/AuditCopyGetResponse.html +0 -96
  641. data/doc/rdoc/classes/Plaid/AuditCopyRemoveResponse.html +0 -110
  642. data/doc/rdoc/classes/Plaid/Auth.html +0 -206
  643. data/doc/rdoc/classes/Plaid/AuthResponse.html +0 -127
  644. data/doc/rdoc/classes/Plaid/Balance.html +0 -206
  645. data/doc/rdoc/classes/Plaid/BaseProduct.html +0 -304
  646. data/doc/rdoc/classes/Plaid/Categories.html +0 -191
  647. data/doc/rdoc/classes/Plaid/CategoriesResponse.html +0 -111
  648. data/doc/rdoc/classes/Plaid/Client.html +0 -802
  649. data/doc/rdoc/classes/Plaid/CreateResponse.html +0 -118
  650. data/doc/rdoc/classes/Plaid/CreditDetails.html +0 -203
  651. data/doc/rdoc/classes/Plaid/CreditDetailsResponse.html +0 -128
  652. data/doc/rdoc/classes/Plaid/DepositSwitch/CreateResponse.html +0 -110
  653. data/doc/rdoc/classes/Plaid/DepositSwitch/CreateTokenResponse.html +0 -118
  654. data/doc/rdoc/classes/Plaid/DepositSwitch/GetResponse.html +0 -150
  655. data/doc/rdoc/classes/Plaid/DepositSwitch.html +0 -339
  656. data/doc/rdoc/classes/Plaid/Dwolla/ProcessorToken.html +0 -205
  657. data/doc/rdoc/classes/Plaid/Dwolla.html +0 -150
  658. data/doc/rdoc/classes/Plaid/Error.html +0 -214
  659. data/doc/rdoc/classes/Plaid/GetResponse.html +0 -134
  660. data/doc/rdoc/classes/Plaid/Holdings/GetResponse.html +0 -137
  661. data/doc/rdoc/classes/Plaid/Holdings.html +0 -218
  662. data/doc/rdoc/classes/Plaid/Identity.html +0 -199
  663. data/doc/rdoc/classes/Plaid/IdentityResponse.html +0 -119
  664. data/doc/rdoc/classes/Plaid/Income.html +0 -198
  665. data/doc/rdoc/classes/Plaid/IncomeResponse.html +0 -119
  666. data/doc/rdoc/classes/Plaid/InstitutionError.html +0 -96
  667. data/doc/rdoc/classes/Plaid/Institutions.html +0 -356
  668. data/doc/rdoc/classes/Plaid/InvalidInputError.html +0 -97
  669. data/doc/rdoc/classes/Plaid/InvalidRequestError.html +0 -96
  670. data/doc/rdoc/classes/Plaid/InvestmentTransactions/GetResponse.html +0 -145
  671. data/doc/rdoc/classes/Plaid/InvestmentTransactions.html +0 -240
  672. data/doc/rdoc/classes/Plaid/Investments.html +0 -204
  673. data/doc/rdoc/classes/Plaid/Item/GetResponse.html +0 -119
  674. data/doc/rdoc/classes/Plaid/Item/ImportResponse.html +0 -110
  675. data/doc/rdoc/classes/Plaid/Item/RemoveResponse.html +0 -110
  676. data/doc/rdoc/classes/Plaid/Item.html +0 -382
  677. data/doc/rdoc/classes/Plaid/ItemError.html +0 -98
  678. data/doc/rdoc/classes/Plaid/Liabilities.html +0 -202
  679. data/doc/rdoc/classes/Plaid/LiabilitiesResponse.html +0 -128
  680. data/doc/rdoc/classes/Plaid/LinkToken.html +0 -215
  681. data/doc/rdoc/classes/Plaid/Middleware.html +0 -225
  682. data/doc/rdoc/classes/Plaid/Models/Account.html +0 -166
  683. data/doc/rdoc/classes/Plaid/Models/AccountWithOwners.html +0 -110
  684. data/doc/rdoc/classes/Plaid/Models/AssetReport.html +0 -153
  685. data/doc/rdoc/classes/Plaid/Models/AssetReportAccount.html +0 -198
  686. data/doc/rdoc/classes/Plaid/Models/AssetReportBalance.html +0 -142
  687. data/doc/rdoc/classes/Plaid/Models/AssetReportHistoricalBalance.html +0 -142
  688. data/doc/rdoc/classes/Plaid/Models/AssetReportItem.html +0 -145
  689. data/doc/rdoc/classes/Plaid/Models/AssetReportOwner.html +0 -139
  690. data/doc/rdoc/classes/Plaid/Models/AssetReportTransaction.html +0 -187
  691. data/doc/rdoc/classes/Plaid/Models/AssetReportUser.html +0 -159
  692. data/doc/rdoc/classes/Plaid/Models/Balances.html +0 -142
  693. data/doc/rdoc/classes/Plaid/Models/BaseError.html +0 -140
  694. data/doc/rdoc/classes/Plaid/Models/BaseModel.html +0 -259
  695. data/doc/rdoc/classes/Plaid/Models/BaseResponse.html +0 -110
  696. data/doc/rdoc/classes/Plaid/Models/Category.html +0 -127
  697. data/doc/rdoc/classes/Plaid/Models/Cause.html +0 -110
  698. data/doc/rdoc/classes/Plaid/Models/CreditCardLiability.html +0 -175
  699. data/doc/rdoc/classes/Plaid/Models/CreditCardLiabilityAPRs.html +0 -137
  700. data/doc/rdoc/classes/Plaid/Models/CreditDetails.html +0 -166
  701. data/doc/rdoc/classes/Plaid/Models/CreditDetailsAPR.html +0 -126
  702. data/doc/rdoc/classes/Plaid/Models/CreditDetailsAPRs.html +0 -126
  703. data/doc/rdoc/classes/Plaid/Models/Error.html +0 -110
  704. data/doc/rdoc/classes/Plaid/Models/Holding.html +0 -181
  705. data/doc/rdoc/classes/Plaid/Models/Identity.html +0 -135
  706. data/doc/rdoc/classes/Plaid/Models/IdentityAddress.html +0 -118
  707. data/doc/rdoc/classes/Plaid/Models/IdentityAddressData.html +0 -142
  708. data/doc/rdoc/classes/Plaid/Models/IdentityEmail.html +0 -127
  709. data/doc/rdoc/classes/Plaid/Models/IdentityPhoneNumber.html +0 -126
  710. data/doc/rdoc/classes/Plaid/Models/Income.html +0 -173
  711. data/doc/rdoc/classes/Plaid/Models/IncomeStream.html +0 -136
  712. data/doc/rdoc/classes/Plaid/Models/Institution.html +0 -230
  713. data/doc/rdoc/classes/Plaid/Models/InstitutionCredential.html +0 -126
  714. data/doc/rdoc/classes/Plaid/Models/InstitutionPaymentInitiationMetadata.html +0 -136
  715. data/doc/rdoc/classes/Plaid/Models/InstitutionStatus.html +0 -111
  716. data/doc/rdoc/classes/Plaid/Models/InstitutionStatusBreakdown.html +0 -129
  717. data/doc/rdoc/classes/Plaid/Models/InstitutionStatusItemLogins.html +0 -127
  718. data/doc/rdoc/classes/Plaid/Models/InvestmentTransaction.html +0 -224
  719. data/doc/rdoc/classes/Plaid/Models/Item.html +0 -169
  720. data/doc/rdoc/classes/Plaid/Models/ItemStatus.html +0 -129
  721. data/doc/rdoc/classes/Plaid/Models/ItemStatusInvestments.html +0 -119
  722. data/doc/rdoc/classes/Plaid/Models/ItemStatusLastWebhook.html +0 -118
  723. data/doc/rdoc/classes/Plaid/Models/ItemStatusTransactions.html +0 -119
  724. data/doc/rdoc/classes/Plaid/Models/Liabilities.html +0 -130
  725. data/doc/rdoc/classes/Plaid/Models/LinkTokenMetadata.html +0 -158
  726. data/doc/rdoc/classes/Plaid/Models/MFA/Device.html +0 -110
  727. data/doc/rdoc/classes/Plaid/Models/MFA/DeviceListElement.html +0 -126
  728. data/doc/rdoc/classes/Plaid/Models/MFA/Selection.html +0 -118
  729. data/doc/rdoc/classes/Plaid/Models/MFA.html +0 -129
  730. data/doc/rdoc/classes/Plaid/Models/NumberACH.html +0 -134
  731. data/doc/rdoc/classes/Plaid/Models/NumberBACS.html +0 -126
  732. data/doc/rdoc/classes/Plaid/Models/NumberEFT.html +0 -134
  733. data/doc/rdoc/classes/Plaid/Models/NumberInternational.html +0 -127
  734. data/doc/rdoc/classes/Plaid/Models/Numbers.html +0 -135
  735. data/doc/rdoc/classes/Plaid/Models/PSLFStatus.html +0 -128
  736. data/doc/rdoc/classes/Plaid/Models/Payment.html +0 -191
  737. data/doc/rdoc/classes/Plaid/Models/PaymentAmount.html +0 -118
  738. data/doc/rdoc/classes/Plaid/Models/PaymentRecipient.html +0 -142
  739. data/doc/rdoc/classes/Plaid/Models/PaymentRecipientAddress.html +0 -134
  740. data/doc/rdoc/classes/Plaid/Models/PaymentRecipientBACS.html +0 -118
  741. data/doc/rdoc/classes/Plaid/Models/PaymentSchedule.html +0 -126
  742. data/doc/rdoc/classes/Plaid/Models/Security.html +0 -228
  743. data/doc/rdoc/classes/Plaid/Models/StandingOrderMetadata.html +0 -129
  744. data/doc/rdoc/classes/Plaid/Models/StudentLoanLiability.html +0 -305
  745. data/doc/rdoc/classes/Plaid/Models/StudentLoanRepaymentPlan.html +0 -118
  746. data/doc/rdoc/classes/Plaid/Models/StudentLoanServicerAddress.html +0 -142
  747. data/doc/rdoc/classes/Plaid/Models/StudentLoanStatus.html +0 -118
  748. data/doc/rdoc/classes/Plaid/Models/Transaction.html +0 -265
  749. data/doc/rdoc/classes/Plaid/Models/TransactionLocation.html +0 -166
  750. data/doc/rdoc/classes/Plaid/Models/TransactionPaymentMeta.html +0 -167
  751. data/doc/rdoc/classes/Plaid/Models/Warning.html +0 -126
  752. data/doc/rdoc/classes/Plaid/Models/WebhookVerificationKey.html +0 -174
  753. data/doc/rdoc/classes/Plaid/Models.html +0 -506
  754. data/doc/rdoc/classes/Plaid/MultipleInstitutionsResponse.html +0 -119
  755. data/doc/rdoc/classes/Plaid/Ocrolus/ProcessorToken.html +0 -205
  756. data/doc/rdoc/classes/Plaid/Ocrolus.html +0 -151
  757. data/doc/rdoc/classes/Plaid/PaymentCreateResponse.html +0 -118
  758. data/doc/rdoc/classes/Plaid/PaymentGetResponse.html +0 -191
  759. data/doc/rdoc/classes/Plaid/PaymentInitiation.html +0 -570
  760. data/doc/rdoc/classes/Plaid/PaymentListResponse.html +0 -119
  761. data/doc/rdoc/classes/Plaid/PaymentRecipientCreateResponse.html +0 -110
  762. data/doc/rdoc/classes/Plaid/PaymentRecipientGetResponse.html +0 -142
  763. data/doc/rdoc/classes/Plaid/PaymentRecipientListResponse.html +0 -110
  764. data/doc/rdoc/classes/Plaid/PaymentTokenCreateResponse.html +0 -118
  765. data/doc/rdoc/classes/Plaid/PlaidAPIError.html +0 -260
  766. data/doc/rdoc/classes/Plaid/PlaidError.html +0 -96
  767. data/doc/rdoc/classes/Plaid/PlaidServerError.html +0 -96
  768. data/doc/rdoc/classes/Plaid/Processor.html +0 -143
  769. data/doc/rdoc/classes/Plaid/ProcessorToken.html +0 -219
  770. data/doc/rdoc/classes/Plaid/ProcessorTokenResponse.html +0 -110
  771. data/doc/rdoc/classes/Plaid/PublicToken/CreateResponse.html +0 -118
  772. data/doc/rdoc/classes/Plaid/PublicToken/ExchangeResponse.html +0 -118
  773. data/doc/rdoc/classes/Plaid/PublicToken.html +0 -283
  774. data/doc/rdoc/classes/Plaid/RateLimitExceededError.html +0 -97
  775. data/doc/rdoc/classes/Plaid/Sandbox.html +0 -119
  776. data/doc/rdoc/classes/Plaid/SandboxItem/FireWebhookResponse.html +0 -110
  777. data/doc/rdoc/classes/Plaid/SandboxItem/ResetLoginResponse.html +0 -110
  778. data/doc/rdoc/classes/Plaid/SandboxItem.html +0 -351
  779. data/doc/rdoc/classes/Plaid/SandboxPublicToken/SandboxCreateResponse.html +0 -118
  780. data/doc/rdoc/classes/Plaid/SandboxPublicToken.html +0 -249
  781. data/doc/rdoc/classes/Plaid/SingleInstitutionResponse.html +0 -111
  782. data/doc/rdoc/classes/Plaid/Stripe/BankAccountToken/CreateResponse.html +0 -110
  783. data/doc/rdoc/classes/Plaid/Stripe/BankAccountToken.html +0 -215
  784. data/doc/rdoc/classes/Plaid/Stripe.html +0 -151
  785. data/doc/rdoc/classes/Plaid/SubproductMixin.html +0 -179
  786. data/doc/rdoc/classes/Plaid/Transactions/GetResponse.html +0 -144
  787. data/doc/rdoc/classes/Plaid/Transactions.html +0 -302
  788. data/doc/rdoc/classes/Plaid/Webhook/UpdateResponse.html +0 -110
  789. data/doc/rdoc/classes/Plaid/Webhook.html +0 -214
  790. data/doc/rdoc/classes/Plaid/Webhooks/WebhookVerificationKeyGetResponse.html +0 -110
  791. data/doc/rdoc/classes/Plaid/Webhooks.html +0 -207
  792. data/doc/rdoc/classes/Plaid.html +0 -772
  793. data/doc/rdoc/created.rid +0 -28
  794. data/doc/rdoc/css/github.css +0 -123
  795. data/doc/rdoc/css/main.css +0 -333
  796. data/doc/rdoc/css/panel.css +0 -383
  797. data/doc/rdoc/css/reset.css +0 -48
  798. data/doc/rdoc/favicon.ico +0 -0
  799. data/doc/rdoc/files/LICENSE_txt.html +0 -98
  800. data/doc/rdoc/files/README_md.html +0 -388
  801. data/doc/rdoc/files/lib/plaid/client_rb.html +0 -121
  802. data/doc/rdoc/files/lib/plaid/errors_rb.html +0 -132
  803. data/doc/rdoc/files/lib/plaid/middleware_rb.html +0 -99
  804. data/doc/rdoc/files/lib/plaid/models_rb.html +0 -450
  805. data/doc/rdoc/files/lib/plaid/products/accounts_rb.html +0 -102
  806. data/doc/rdoc/files/lib/plaid/products/asset_report_rb.html +0 -132
  807. data/doc/rdoc/files/lib/plaid/products/auth_rb.html +0 -97
  808. data/doc/rdoc/files/lib/plaid/products/base_product_rb.html +0 -92
  809. data/doc/rdoc/files/lib/plaid/products/categories_rb.html +0 -92
  810. data/doc/rdoc/files/lib/plaid/products/credit_details_rb.html +0 -97
  811. data/doc/rdoc/files/lib/plaid/products/deposit_switch_rb.html +0 -102
  812. data/doc/rdoc/files/lib/plaid/products/identity_rb.html +0 -97
  813. data/doc/rdoc/files/lib/plaid/products/income_rb.html +0 -97
  814. data/doc/rdoc/files/lib/plaid/products/institutions_rb.html +0 -102
  815. data/doc/rdoc/files/lib/plaid/products/investments_rb.html +0 -120
  816. data/doc/rdoc/files/lib/plaid/products/item_rb.html +0 -142
  817. data/doc/rdoc/files/lib/plaid/products/liabilities_rb.html +0 -97
  818. data/doc/rdoc/files/lib/plaid/products/link_token_rb.html +0 -102
  819. data/doc/rdoc/files/lib/plaid/products/payment_initiation_rb.html +0 -127
  820. data/doc/rdoc/files/lib/plaid/products/processor_rb.html +0 -142
  821. data/doc/rdoc/files/lib/plaid/products/sandbox_rb.html +0 -117
  822. data/doc/rdoc/files/lib/plaid/products/transactions_rb.html +0 -105
  823. data/doc/rdoc/files/lib/plaid/products/webhooks_rb.html +0 -97
  824. data/doc/rdoc/files/lib/plaid/version_rb.html +0 -82
  825. data/doc/rdoc/files/lib/plaid_rb.html +0 -120
  826. data/doc/rdoc/i/arrows.png +0 -0
  827. data/doc/rdoc/i/results_bg.png +0 -0
  828. data/doc/rdoc/i/tree_bg.png +0 -0
  829. data/doc/rdoc/index.html +0 -13
  830. data/doc/rdoc/js/highlight.pack.js +0 -1
  831. data/doc/rdoc/js/jquery-1.3.2.min.js +0 -19
  832. data/doc/rdoc/js/main.js +0 -29
  833. data/doc/rdoc/js/navigation.js +0 -142
  834. data/doc/rdoc/js/navigation.js.gz +0 -0
  835. data/doc/rdoc/js/search_index.js +0 -1
  836. data/doc/rdoc/js/search_index.js.gz +0 -0
  837. data/doc/rdoc/js/searchdoc.js +0 -468
  838. data/doc/rdoc/js/searcher.js +0 -229
  839. data/doc/rdoc/js/searcher.js.gz +0 -0
  840. data/doc/rdoc/panel/index.html +0 -74
  841. data/doc/rdoc/panel/links.html +0 -60
  842. data/doc/rdoc/panel/tree.js +0 -1
  843. data/lib/plaid/.DS_Store +0 -0
@@ -0,0 +1,736 @@
1
+ # frozen_string_literal: true
2
+
3
+ shared_examples 'initializer with url' do
4
+ context 'with simple url' do
5
+ let(:address) { 'http://sushi.com' }
6
+
7
+ it { expect(subject.host).to eq('sushi.com') }
8
+ it { expect(subject.port).to eq(80) }
9
+ it { expect(subject.scheme).to eq('http') }
10
+ it { expect(subject.path_prefix).to eq('/') }
11
+ it { expect(subject.params).to eq({}) }
12
+ end
13
+
14
+ context 'with complex url' do
15
+ let(:address) { 'http://sushi.com:815/fish?a=1' }
16
+
17
+ it { expect(subject.port).to eq(815) }
18
+ it { expect(subject.path_prefix).to eq('/fish') }
19
+ it { expect(subject.params).to eq('a' => '1') }
20
+ end
21
+
22
+ context 'with IPv6 address' do
23
+ let(:address) { 'http://[::1]:85/' }
24
+
25
+ it { expect(subject.host).to eq('[::1]') }
26
+ it { expect(subject.port).to eq(85) }
27
+ end
28
+ end
29
+
30
+ shared_examples 'default connection options' do
31
+ after { Faraday.default_connection_options = nil }
32
+
33
+ it 'works with implicit url' do
34
+ conn = Faraday.new 'http://sushi.com/foo'
35
+ expect(conn.options.timeout).to eq(10)
36
+ end
37
+
38
+ it 'works with option url' do
39
+ conn = Faraday.new url: 'http://sushi.com/foo'
40
+ expect(conn.options.timeout).to eq(10)
41
+ end
42
+
43
+ it 'works with instance connection options' do
44
+ conn = Faraday.new 'http://sushi.com/foo', request: { open_timeout: 1 }
45
+ expect(conn.options.timeout).to eq(10)
46
+ expect(conn.options.open_timeout).to eq(1)
47
+ end
48
+
49
+ it 'default connection options persist with an instance overriding' do
50
+ conn = Faraday.new 'http://nigiri.com/bar'
51
+ conn.options.timeout = 1
52
+ expect(Faraday.default_connection_options.request.timeout).to eq(10)
53
+
54
+ other = Faraday.new url: 'https://sushi.com/foo'
55
+ other.options.timeout = 1
56
+
57
+ expect(Faraday.default_connection_options.request.timeout).to eq(10)
58
+ end
59
+
60
+ it 'default connection uses default connection options' do
61
+ expect(Faraday.default_connection.options.timeout).to eq(10)
62
+ end
63
+ end
64
+
65
+ RSpec.describe Faraday::Connection do
66
+ let(:conn) { Faraday::Connection.new(url, options) }
67
+ let(:url) { nil }
68
+ let(:options) { nil }
69
+
70
+ describe '.new' do
71
+ subject { conn }
72
+
73
+ context 'with implicit url param' do
74
+ # Faraday::Connection.new('http://sushi.com')
75
+ let(:url) { address }
76
+
77
+ it_behaves_like 'initializer with url'
78
+ end
79
+
80
+ context 'with explicit url param' do
81
+ # Faraday::Connection.new(url: 'http://sushi.com')
82
+ let(:url) { { url: address } }
83
+
84
+ it_behaves_like 'initializer with url'
85
+ end
86
+
87
+ context 'with custom builder' do
88
+ let(:custom_builder) { Faraday::RackBuilder.new }
89
+ let(:options) { { builder: custom_builder } }
90
+
91
+ it { expect(subject.builder).to eq(custom_builder) }
92
+ end
93
+
94
+ context 'with custom params' do
95
+ let(:options) { { params: { a: 1 } } }
96
+
97
+ it { expect(subject.params).to eq('a' => 1) }
98
+ end
99
+
100
+ context 'with custom params and params in url' do
101
+ let(:url) { 'http://sushi.com/fish?a=1&b=2' }
102
+ let(:options) { { params: { a: 3 } } }
103
+ it { expect(subject.params).to eq('a' => 3, 'b' => '2') }
104
+ end
105
+
106
+ context 'with custom headers' do
107
+ let(:options) { { headers: { user_agent: 'Faraday' } } }
108
+
109
+ it { expect(subject.headers['User-agent']).to eq('Faraday') }
110
+ end
111
+
112
+ context 'with ssl false' do
113
+ let(:options) { { ssl: { verify: false } } }
114
+
115
+ it { expect(subject.ssl.verify?).to be_falsey }
116
+ end
117
+
118
+ context 'with empty block' do
119
+ let(:conn) { Faraday::Connection.new {} }
120
+
121
+ it { expect(conn.builder.handlers.size).to eq(0) }
122
+ end
123
+
124
+ context 'with block' do
125
+ let(:conn) do
126
+ Faraday::Connection.new(params: { 'a' => '1' }) do |faraday|
127
+ faraday.adapter :net_http
128
+ faraday.url_prefix = 'http://sushi.com/omnom'
129
+ end
130
+ end
131
+
132
+ it { expect(conn.builder.handlers.size).to eq(0) }
133
+ it { expect(conn.path_prefix).to eq('/omnom') }
134
+ end
135
+ end
136
+
137
+ describe '#close' do
138
+ it 'can close underlying app' do
139
+ expect(conn.app).to receive(:close)
140
+ conn.close
141
+ end
142
+ end
143
+
144
+ describe 'basic_auth' do
145
+ subject { conn }
146
+
147
+ context 'calling the #basic_auth method' do
148
+ before { subject.basic_auth 'Aladdin', 'open sesame' }
149
+
150
+ it { expect(subject.headers['Authorization']).to eq('Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==') }
151
+ end
152
+
153
+ context 'adding basic auth info to url' do
154
+ let(:url) { 'http://Aladdin:open%20sesame@sushi.com/fish' }
155
+
156
+ it { expect(subject.headers['Authorization']).to eq('Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==') }
157
+ end
158
+ end
159
+
160
+ describe '#token_auth' do
161
+ before { subject.token_auth('abcdef', nonce: 'abc') }
162
+
163
+ it { expect(subject.headers['Authorization']).to eq('Token nonce="abc", token="abcdef"') }
164
+ end
165
+
166
+ describe '#build_exclusive_url' do
167
+ context 'with relative path' do
168
+ subject { conn.build_exclusive_url('sake.html') }
169
+
170
+ it 'uses connection host as default host' do
171
+ conn.host = 'sushi.com'
172
+ expect(subject.host).to eq('sushi.com')
173
+ expect(subject.scheme).to eq('http')
174
+ end
175
+
176
+ it do
177
+ conn.path_prefix = '/fish'
178
+ expect(subject.path).to eq('/fish/sake.html')
179
+ end
180
+
181
+ it do
182
+ conn.path_prefix = '/'
183
+ expect(subject.path).to eq('/sake.html')
184
+ end
185
+
186
+ it do
187
+ conn.path_prefix = 'fish'
188
+ expect(subject.path).to eq('/fish/sake.html')
189
+ end
190
+
191
+ it do
192
+ conn.path_prefix = '/fish/'
193
+ expect(subject.path).to eq('/fish/sake.html')
194
+ end
195
+ end
196
+
197
+ context 'with absolute path' do
198
+ subject { conn.build_exclusive_url('/sake.html') }
199
+
200
+ after { expect(subject.path).to eq('/sake.html') }
201
+
202
+ it { conn.path_prefix = '/fish' }
203
+ it { conn.path_prefix = '/' }
204
+ it { conn.path_prefix = 'fish' }
205
+ it { conn.path_prefix = '/fish/' }
206
+ end
207
+
208
+ context 'with complete url' do
209
+ subject { conn.build_exclusive_url('http://sushi.com/sake.html?a=1') }
210
+
211
+ it { expect(subject.scheme).to eq('http') }
212
+ it { expect(subject.host).to eq('sushi.com') }
213
+ it { expect(subject.port).to eq(80) }
214
+ it { expect(subject.path).to eq('/sake.html') }
215
+ it { expect(subject.query).to eq('a=1') }
216
+ end
217
+
218
+ it 'overrides connection port for absolute url' do
219
+ conn.port = 23
220
+ uri = conn.build_exclusive_url('http://sushi.com')
221
+ expect(uri.port).to eq(80)
222
+ end
223
+
224
+ it 'does not add ending slash given nil url' do
225
+ conn.url_prefix = 'http://sushi.com/nigiri'
226
+ uri = conn.build_exclusive_url
227
+ expect(uri.path).to eq('/nigiri')
228
+ end
229
+
230
+ it 'does not add ending slash given empty url' do
231
+ conn.url_prefix = 'http://sushi.com/nigiri'
232
+ uri = conn.build_exclusive_url('')
233
+ expect(uri.path).to eq('/nigiri')
234
+ end
235
+
236
+ it 'does not use connection params' do
237
+ conn.url_prefix = 'http://sushi.com/nigiri'
238
+ conn.params = { a: 1 }
239
+ expect(conn.build_exclusive_url.to_s).to eq('http://sushi.com/nigiri')
240
+ end
241
+
242
+ it 'allows to provide params argument' do
243
+ conn.url_prefix = 'http://sushi.com/nigiri'
244
+ conn.params = { a: 1 }
245
+ params = Faraday::Utils::ParamsHash.new
246
+ params[:a] = 2
247
+ uri = conn.build_exclusive_url(nil, params)
248
+ expect(uri.to_s).to eq('http://sushi.com/nigiri?a=2')
249
+ end
250
+
251
+ it 'handles uri instances' do
252
+ uri = conn.build_exclusive_url(URI('/sake.html'))
253
+ expect(uri.path).to eq('/sake.html')
254
+ end
255
+
256
+ it 'always returns new URI instance' do
257
+ conn.url_prefix = 'http://sushi.com'
258
+ uri1 = conn.build_exclusive_url(nil)
259
+ uri2 = conn.build_exclusive_url(nil)
260
+ expect(uri1).not_to equal(uri2)
261
+ end
262
+
263
+ context 'with url_prefixed connection' do
264
+ let(:url) { 'http://sushi.com/sushi/' }
265
+
266
+ it 'parses url and changes scheme' do
267
+ conn.scheme = 'https'
268
+ uri = conn.build_exclusive_url('sake.html')
269
+ expect(uri.to_s).to eq('https://sushi.com/sushi/sake.html')
270
+ end
271
+
272
+ it 'joins url to base with ending slash' do
273
+ uri = conn.build_exclusive_url('sake.html')
274
+ expect(uri.to_s).to eq('http://sushi.com/sushi/sake.html')
275
+ end
276
+
277
+ it 'used default base with ending slash' do
278
+ uri = conn.build_exclusive_url
279
+ expect(uri.to_s).to eq('http://sushi.com/sushi/')
280
+ end
281
+
282
+ it 'overrides base' do
283
+ uri = conn.build_exclusive_url('/sake/')
284
+ expect(uri.to_s).to eq('http://sushi.com/sake/')
285
+ end
286
+ end
287
+
288
+ context 'with colon in path' do
289
+ let(:url) { 'http://service.com' }
290
+
291
+ it 'joins url to base when used absolute path' do
292
+ conn = Faraday.new(url: url)
293
+ uri = conn.build_exclusive_url('/service:search?limit=400')
294
+ expect(uri.to_s).to eq('http://service.com/service:search?limit=400')
295
+ end
296
+
297
+ it 'joins url to base when used relative path' do
298
+ conn = Faraday.new(url: url)
299
+ uri = conn.build_exclusive_url('service:search?limit=400')
300
+ expect(uri.to_s).to eq('http://service.com/service%3Asearch?limit=400')
301
+ end
302
+
303
+ it 'joins url to base when used with path prefix' do
304
+ conn = Faraday.new(url: url)
305
+ conn.path_prefix = '/api'
306
+ uri = conn.build_exclusive_url('service:search?limit=400')
307
+ expect(uri.to_s).to eq('http://service.com/api/service%3Asearch?limit=400')
308
+ end
309
+ end
310
+ end
311
+
312
+ describe '#build_url' do
313
+ let(:url) { 'http://sushi.com/nigiri' }
314
+
315
+ it 'uses params' do
316
+ conn.params = { a: 1, b: 1 }
317
+ expect(conn.build_url.to_s).to eq('http://sushi.com/nigiri?a=1&b=1')
318
+ end
319
+
320
+ it 'merges params' do
321
+ conn.params = { a: 1, b: 1 }
322
+ url = conn.build_url(nil, b: 2, c: 3)
323
+ expect(url.to_s).to eq('http://sushi.com/nigiri?a=1&b=2&c=3')
324
+ end
325
+ end
326
+
327
+ describe '#build_request' do
328
+ let(:url) { 'https://asushi.com/sake.html' }
329
+ let(:request) { conn.build_request(:get) }
330
+
331
+ before do
332
+ conn.headers = { 'Authorization' => 'token abc123' }
333
+ request.headers.delete('Authorization')
334
+ end
335
+
336
+ it { expect(conn.headers.keys).to eq(['Authorization']) }
337
+ it { expect(conn.headers.include?('Authorization')).to be_truthy }
338
+ it { expect(request.headers.keys).to be_empty }
339
+ it { expect(request.headers.include?('Authorization')).to be_falsey }
340
+ end
341
+
342
+ describe '#to_env' do
343
+ subject { conn.build_request(:get).to_env(conn).url }
344
+
345
+ let(:url) { 'http://sushi.com/sake.html' }
346
+ let(:options) { { params: @params } }
347
+
348
+ it 'parses url params into query' do
349
+ @params = { 'a[b]' => '1 + 2' }
350
+ expect(subject.query).to eq('a%5Bb%5D=1+%2B+2')
351
+ end
352
+
353
+ it 'escapes per spec' do
354
+ @params = { 'a' => '1+2 foo~bar.-baz' }
355
+ expect(subject.query).to eq('a=1%2B2+foo~bar.-baz')
356
+ end
357
+
358
+ it 'bracketizes nested params in query' do
359
+ @params = { 'a' => { 'b' => 'c' } }
360
+ expect(subject.query).to eq('a%5Bb%5D=c')
361
+ end
362
+
363
+ it 'bracketizes repeated params in query' do
364
+ @params = { 'a' => [1, 2] }
365
+ expect(subject.query).to eq('a%5B%5D=1&a%5B%5D=2')
366
+ end
367
+
368
+ it 'without braketizing repeated params in query' do
369
+ @params = { 'a' => [1, 2] }
370
+ conn.options.params_encoder = Faraday::FlatParamsEncoder
371
+ expect(subject.query).to eq('a=1&a=2')
372
+ end
373
+ end
374
+
375
+ describe 'proxy support' do
376
+ it 'accepts string' do
377
+ with_env 'http_proxy' => 'http://env-proxy.com:80' do
378
+ conn.proxy = 'http://proxy.com'
379
+ expect(conn.proxy.host).to eq('proxy.com')
380
+ end
381
+ end
382
+
383
+ it 'accepts uri' do
384
+ with_env 'http_proxy' => 'http://env-proxy.com:80' do
385
+ conn.proxy = URI.parse('http://proxy.com')
386
+ expect(conn.proxy.host).to eq('proxy.com')
387
+ end
388
+ end
389
+
390
+ it 'accepts hash with string uri' do
391
+ with_env 'http_proxy' => 'http://env-proxy.com:80' do
392
+ conn.proxy = { uri: 'http://proxy.com', user: 'rick' }
393
+ expect(conn.proxy.host).to eq('proxy.com')
394
+ expect(conn.proxy.user).to eq('rick')
395
+ end
396
+ end
397
+
398
+ it 'accepts hash' do
399
+ with_env 'http_proxy' => 'http://env-proxy.com:80' do
400
+ conn.proxy = { uri: URI.parse('http://proxy.com'), user: 'rick' }
401
+ expect(conn.proxy.host).to eq('proxy.com')
402
+ expect(conn.proxy.user).to eq('rick')
403
+ end
404
+ end
405
+
406
+ it 'accepts http env' do
407
+ with_env 'http_proxy' => 'http://env-proxy.com:80' do
408
+ expect(conn.proxy.host).to eq('env-proxy.com')
409
+ end
410
+ end
411
+
412
+ it 'accepts http env with auth' do
413
+ with_env 'http_proxy' => 'http://a%40b:my%20pass@proxy.com:80' do
414
+ expect(conn.proxy.user).to eq('a@b')
415
+ expect(conn.proxy.password).to eq('my pass')
416
+ end
417
+ end
418
+
419
+ it 'accepts env without scheme' do
420
+ with_env 'http_proxy' => 'localhost:8888' do
421
+ uri = conn.proxy[:uri]
422
+ expect(uri.host).to eq('localhost')
423
+ expect(uri.port).to eq(8888)
424
+ end
425
+ end
426
+
427
+ it 'fetches no proxy from nil env' do
428
+ with_env 'http_proxy' => nil do
429
+ expect(conn.proxy).to be_nil
430
+ end
431
+ end
432
+
433
+ it 'fetches no proxy from blank env' do
434
+ with_env 'http_proxy' => '' do
435
+ expect(conn.proxy).to be_nil
436
+ end
437
+ end
438
+
439
+ it 'does not accept uppercase env' do
440
+ with_env 'HTTP_PROXY' => 'http://localhost:8888/' do
441
+ expect(conn.proxy).to be_nil
442
+ end
443
+ end
444
+
445
+ it 'allows when url in no proxy list' do
446
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example.com' do
447
+ conn = Faraday::Connection.new('http://example.com')
448
+ expect(conn.proxy).to be_nil
449
+ end
450
+ end
451
+
452
+ it 'allows when url in no proxy list with url_prefix' do
453
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example.com' do
454
+ conn = Faraday::Connection.new
455
+ conn.url_prefix = 'http://example.com'
456
+ expect(conn.proxy).to be_nil
457
+ end
458
+ end
459
+
460
+ it 'allows when prefixed url is not in no proxy list' do
461
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example.com' do
462
+ conn = Faraday::Connection.new('http://prefixedexample.com')
463
+ expect(conn.proxy.host).to eq('proxy.com')
464
+ end
465
+ end
466
+
467
+ it 'allows when subdomain url is in no proxy list' do
468
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example.com' do
469
+ conn = Faraday::Connection.new('http://subdomain.example.com')
470
+ expect(conn.proxy).to be_nil
471
+ end
472
+ end
473
+
474
+ it 'allows when url not in no proxy list' do
475
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example2.com' do
476
+ conn = Faraday::Connection.new('http://example.com')
477
+ expect(conn.proxy.host).to eq('proxy.com')
478
+ end
479
+ end
480
+
481
+ it 'allows when ip address is not in no proxy list but url is' do
482
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'localhost' do
483
+ conn = Faraday::Connection.new('http://127.0.0.1')
484
+ expect(conn.proxy).to be_nil
485
+ end
486
+ end
487
+
488
+ it 'allows when url is not in no proxy list but ip address is' do
489
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => '127.0.0.1' do
490
+ conn = Faraday::Connection.new('http://localhost')
491
+ expect(conn.proxy).to be_nil
492
+ end
493
+ end
494
+
495
+ it 'allows in multi element no proxy list' do
496
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example0.com,example.com,example1.com' do
497
+ expect(Faraday::Connection.new('http://example0.com').proxy).to be_nil
498
+ expect(Faraday::Connection.new('http://example.com').proxy).to be_nil
499
+ expect(Faraday::Connection.new('http://example1.com').proxy).to be_nil
500
+ expect(Faraday::Connection.new('http://example2.com').proxy.host).to eq('proxy.com')
501
+ end
502
+ end
503
+
504
+ it 'test proxy requires uri' do
505
+ expect { conn.proxy = { uri: :bad_uri, user: 'rick' } }.to raise_error(ArgumentError)
506
+ end
507
+
508
+ it 'uses env http_proxy' do
509
+ with_env 'http_proxy' => 'http://proxy.com' do
510
+ conn = Faraday.new
511
+ expect(conn.instance_variable_get('@manual_proxy')).to be_falsey
512
+ expect(conn.proxy_for_request('http://google.co.uk').host).to eq('proxy.com')
513
+ end
514
+ end
515
+
516
+ it 'uses processes no_proxy before http_proxy' do
517
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'google.co.uk' do
518
+ conn = Faraday.new
519
+ expect(conn.instance_variable_get('@manual_proxy')).to be_falsey
520
+ expect(conn.proxy_for_request('http://google.co.uk')).to be_nil
521
+ end
522
+ end
523
+
524
+ it 'uses env https_proxy' do
525
+ with_env 'https_proxy' => 'https://proxy.com' do
526
+ conn = Faraday.new
527
+ expect(conn.instance_variable_get('@manual_proxy')).to be_falsey
528
+ expect(conn.proxy_for_request('https://google.co.uk').host).to eq('proxy.com')
529
+ end
530
+ end
531
+
532
+ it 'uses processes no_proxy before https_proxy' do
533
+ with_env 'https_proxy' => 'https://proxy.com', 'no_proxy' => 'google.co.uk' do
534
+ conn = Faraday.new
535
+ expect(conn.instance_variable_get('@manual_proxy')).to be_falsey
536
+ expect(conn.proxy_for_request('https://google.co.uk')).to be_nil
537
+ end
538
+ end
539
+
540
+ it 'gives priority to manually set proxy' do
541
+ with_env 'https_proxy' => 'https://proxy.com', 'no_proxy' => 'google.co.uk' do
542
+ conn = Faraday.new
543
+ conn.proxy = 'http://proxy2.com'
544
+
545
+ expect(conn.instance_variable_get('@manual_proxy')).to be_truthy
546
+ expect(conn.proxy_for_request('https://google.co.uk').host).to eq('proxy2.com')
547
+ end
548
+ end
549
+
550
+ it 'ignores env proxy if set that way' do
551
+ with_env_proxy_disabled do
552
+ with_env 'http_proxy' => 'http://duncan.proxy.com:80' do
553
+ expect(conn.proxy).to be_nil
554
+ end
555
+ end
556
+ end
557
+
558
+ context 'performing a request' do
559
+ before { stub_request(:get, 'http://example.com') }
560
+
561
+ it 'dynamically checks proxy' do
562
+ with_env 'http_proxy' => 'http://proxy.com:80' do
563
+ conn = Faraday.new
564
+ expect(conn.proxy.uri.host).to eq('proxy.com')
565
+
566
+ conn.get('http://example.com') do |req|
567
+ expect(req.options.proxy.uri.host).to eq('proxy.com')
568
+ end
569
+ end
570
+
571
+ conn.get('http://example.com')
572
+ expect(conn.instance_variable_get('@temp_proxy')).to be_nil
573
+ end
574
+
575
+ it 'dynamically check no proxy' do
576
+ with_env 'http_proxy' => 'http://proxy.com', 'no_proxy' => 'example.com' do
577
+ conn = Faraday.new
578
+
579
+ expect(conn.proxy.uri.host).to eq('proxy.com')
580
+
581
+ conn.get('http://example.com') do |req|
582
+ expect(req.options.proxy).to be_nil
583
+ end
584
+ end
585
+ end
586
+ end
587
+ end
588
+
589
+ describe '#dup' do
590
+ subject { conn.dup }
591
+
592
+ let(:url) { 'http://sushi.com/foo' }
593
+ let(:options) do
594
+ {
595
+ ssl: { verify: :none },
596
+ headers: { 'content-type' => 'text/plain' },
597
+ params: { 'a' => '1' },
598
+ request: { timeout: 5 }
599
+ }
600
+ end
601
+
602
+ it { expect(subject.build_exclusive_url).to eq(conn.build_exclusive_url) }
603
+ it { expect(subject.headers['content-type']).to eq('text/plain') }
604
+ it { expect(subject.params['a']).to eq('1') }
605
+
606
+ context 'after manual changes' do
607
+ before do
608
+ subject.basic_auth('', '')
609
+ subject.headers['content-length'] = 12
610
+ subject.params['b'] = '2'
611
+ subject.options[:open_timeout] = 10
612
+ end
613
+
614
+ it { expect(subject.builder.handlers.size).to eq(1) }
615
+ it { expect(conn.builder.handlers.size).to eq(1) }
616
+ it { expect(conn.headers.key?('content-length')).to be_falsey }
617
+ it { expect(conn.params.key?('b')).to be_falsey }
618
+ it { expect(subject.options[:timeout]).to eq(5) }
619
+ it { expect(conn.options[:open_timeout]).to be_nil }
620
+ end
621
+ end
622
+
623
+ describe '#respond_to?' do
624
+ it { expect(Faraday.respond_to?(:get)).to be_truthy }
625
+ it { expect(Faraday.respond_to?(:post)).to be_truthy }
626
+ end
627
+
628
+ describe 'default_connection_options' do
629
+ context 'assigning a default value' do
630
+ before do
631
+ Faraday.default_connection_options = nil
632
+ Faraday.default_connection_options.request.timeout = 10
633
+ end
634
+
635
+ it_behaves_like 'default connection options'
636
+ end
637
+
638
+ context 'assigning a hash' do
639
+ before { Faraday.default_connection_options = { request: { timeout: 10 } } }
640
+
641
+ it_behaves_like 'default connection options'
642
+ end
643
+ end
644
+
645
+ describe 'request params' do
646
+ context 'with simple url' do
647
+ let(:url) { 'http://example.com' }
648
+ let!(:stubbed) { stub_request(:get, 'http://example.com?a=a&p=3') }
649
+
650
+ after { expect(stubbed).to have_been_made.once }
651
+
652
+ it 'test_overrides_request_params' do
653
+ conn.get('?p=2&a=a', p: 3)
654
+ end
655
+
656
+ it 'test_overrides_request_params_block' do
657
+ conn.get('?p=1&a=a', p: 2) do |req|
658
+ req.params[:p] = 3
659
+ end
660
+ end
661
+
662
+ it 'test_overrides_request_params_block_url' do
663
+ conn.get(nil, p: 2) do |req|
664
+ req.url('?p=1&a=a', 'p' => 3)
665
+ end
666
+ end
667
+ end
668
+
669
+ context 'with url and extra params' do
670
+ let(:url) { 'http://example.com?a=1&b=2' }
671
+ let(:options) { { params: { c: 3 } } }
672
+
673
+ it 'merges connection and request params' do
674
+ stubbed = stub_request(:get, 'http://example.com?a=1&b=2&c=3&limit=5&page=1')
675
+ conn.get('?page=1', limit: 5)
676
+ expect(stubbed).to have_been_made.once
677
+ end
678
+
679
+ it 'allows to override all params' do
680
+ stubbed = stub_request(:get, 'http://example.com?b=b')
681
+ conn.get('?p=1&a=a', p: 2) do |req|
682
+ expect(req.params[:a]).to eq('a')
683
+ expect(req.params['c']).to eq(3)
684
+ expect(req.params['p']).to eq(2)
685
+ req.params = { b: 'b' }
686
+ expect(req.params['b']).to eq('b')
687
+ end
688
+ expect(stubbed).to have_been_made.once
689
+ end
690
+
691
+ it 'allows to set params_encoder for single request' do
692
+ encoder = Object.new
693
+ def encoder.encode(params)
694
+ params.map { |k, v| "#{k.upcase}-#{v.to_s.upcase}" }.join(',')
695
+ end
696
+ stubbed = stub_request(:get, 'http://example.com/?A-1,B-2,C-3,FEELING-BLUE')
697
+
698
+ conn.get('/', feeling: 'blue') do |req|
699
+ req.options.params_encoder = encoder
700
+ end
701
+ expect(stubbed).to have_been_made.once
702
+ end
703
+ end
704
+
705
+ context 'with default params encoder' do
706
+ let!(:stubbed) { stub_request(:get, 'http://example.com?color%5B%5D=red&color%5B%5D=blue') }
707
+ after { expect(stubbed).to have_been_made.once }
708
+
709
+ it 'supports array params in url' do
710
+ conn.get('http://example.com?color[]=red&color[]=blue')
711
+ end
712
+
713
+ it 'supports array params in params' do
714
+ conn.get('http://example.com', color: %w[red blue])
715
+ end
716
+ end
717
+
718
+ context 'with flat params encoder' do
719
+ let(:options) { { request: { params_encoder: Faraday::FlatParamsEncoder } } }
720
+ let!(:stubbed) { stub_request(:get, 'http://example.com?color=blue') }
721
+ after { expect(stubbed).to have_been_made.once }
722
+
723
+ it 'supports array params in params' do
724
+ conn.get('http://example.com', color: %w[red blue])
725
+ end
726
+
727
+ context 'with array param in url' do
728
+ let(:url) { 'http://example.com?color[]=red&color[]=blue' }
729
+
730
+ it do
731
+ conn.get('/')
732
+ end
733
+ end
734
+ end
735
+ end
736
+ end