finch-api 0.1.0.pre.alpha.1 → 0.1.0.pre.alpha.3

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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -20
  3. data/lib/finch-api/base_client.rb +52 -59
  4. data/lib/finch-api/base_model.rb +453 -415
  5. data/lib/finch-api/base_page.rb +34 -15
  6. data/lib/finch-api/client.rb +3 -7
  7. data/lib/finch-api/errors.rb +12 -17
  8. data/lib/finch-api/extern.rb +1 -4
  9. data/lib/finch-api/individuals_page.rb +28 -34
  10. data/lib/finch-api/models/account_update_event.rb +6 -31
  11. data/lib/finch-api/models/company_event.rb +3 -11
  12. data/lib/finch-api/models/connect/session_new_params.rb +9 -52
  13. data/lib/finch-api/models/connect/session_reauthenticate_params.rb +3 -22
  14. data/lib/finch-api/models/connection_status_type.rb +3 -21
  15. data/lib/finch-api/models/create_access_token_response.rb +6 -30
  16. data/lib/finch-api/models/directory_event.rb +3 -15
  17. data/lib/finch-api/models/employment_event.rb +3 -15
  18. data/lib/finch-api/models/hris/benefit_contribution.rb +3 -14
  19. data/lib/finch-api/models/hris/benefit_features_and_operations.rb +9 -39
  20. data/lib/finch-api/models/hris/benefit_frequency.rb +3 -15
  21. data/lib/finch-api/models/hris/benefit_type.rb +3 -22
  22. data/lib/finch-api/models/hris/benefits/enrolled_individual.rb +3 -18
  23. data/lib/finch-api/models/hris/benefits/individual_benefit.rb +3 -14
  24. data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +9 -40
  25. data/lib/finch-api/models/hris/company.rb +9 -52
  26. data/lib/finch-api/models/hris/document_list_params.rb +3 -13
  27. data/lib/finch-api/models/hris/document_response.rb +3 -14
  28. data/lib/finch-api/models/hris/document_retreive_response.rb +7 -23
  29. data/lib/finch-api/models/hris/employment_data.rb +9 -58
  30. data/lib/finch-api/models/hris/individual.rb +12 -66
  31. data/lib/finch-api/models/hris/pay_statement.rb +12 -70
  32. data/lib/finch-api/models/hris/payment.rb +3 -21
  33. data/lib/finch-api/models/hris/supported_benefit.rb +9 -39
  34. data/lib/finch-api/models/hris/w42005.rb +12 -49
  35. data/lib/finch-api/models/hris/w42020.rb +8 -29
  36. data/lib/finch-api/models/income.rb +3 -22
  37. data/lib/finch-api/models/individual_event.rb +3 -15
  38. data/lib/finch-api/models/introspection.rb +9 -50
  39. data/lib/finch-api/models/job_completion_event.rb +3 -21
  40. data/lib/finch-api/models/jobs/automated_async_job.rb +6 -35
  41. data/lib/finch-api/models/jobs/automated_create_params.rb +3 -12
  42. data/lib/finch-api/models/jobs/automated_list_response.rb +100 -0
  43. data/lib/finch-api/models/jobs/manual_async_job.rb +3 -17
  44. data/lib/finch-api/models/operation_support.rb +3 -18
  45. data/lib/finch-api/models/pay_statement_event.rb +3 -15
  46. data/lib/finch-api/models/payment_event.rb +3 -15
  47. data/lib/finch-api/models/payroll/pay_group_list_response.rb +3 -21
  48. data/lib/finch-api/models/payroll/pay_group_retrieve_response.rb +3 -21
  49. data/lib/finch-api/models/provider.rb +3 -20
  50. data/lib/finch-api/models/sandbox/company_update_params.rb +9 -52
  51. data/lib/finch-api/models/sandbox/company_update_response.rb +9 -52
  52. data/lib/finch-api/models/sandbox/connection_create_params.rb +3 -17
  53. data/lib/finch-api/models/sandbox/connection_create_response.rb +3 -17
  54. data/lib/finch-api/models/sandbox/connections/account_create_params.rb +3 -17
  55. data/lib/finch-api/models/sandbox/connections/account_create_response.rb +3 -17
  56. data/lib/finch-api/models/sandbox/connections/account_update_response.rb +3 -17
  57. data/lib/finch-api/models/sandbox/directory_create_params.rb +24 -131
  58. data/lib/finch-api/models/sandbox/employment_update_params.rb +9 -58
  59. data/lib/finch-api/models/sandbox/employment_update_response.rb +9 -58
  60. data/lib/finch-api/models/sandbox/individual_update_params.rb +15 -73
  61. data/lib/finch-api/models/sandbox/individual_update_response.rb +15 -73
  62. data/lib/finch-api/models/sandbox/job_create_params.rb +3 -12
  63. data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rb +2 -1
  64. data/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rb +6 -28
  65. data/lib/finch-api/models/sandbox/payment_create_params.rb +12 -70
  66. data/lib/finch-api/models/webhook_event.rb +10 -27
  67. data/lib/finch-api/page.rb +28 -34
  68. data/lib/finch-api/pooled_net_requester.rb +51 -46
  69. data/lib/finch-api/request_options.rb +5 -12
  70. data/lib/finch-api/resources/access_tokens.rb +0 -2
  71. data/lib/finch-api/resources/account.rb +0 -3
  72. data/lib/finch-api/resources/connect/sessions.rb +0 -3
  73. data/lib/finch-api/resources/connect.rb +0 -1
  74. data/lib/finch-api/resources/hris/benefits/individuals.rb +2 -6
  75. data/lib/finch-api/resources/hris/benefits.rb +0 -6
  76. data/lib/finch-api/resources/hris/company.rb +0 -2
  77. data/lib/finch-api/resources/hris/directory.rb +1 -24
  78. data/lib/finch-api/resources/hris/documents.rb +4 -7
  79. data/lib/finch-api/resources/hris/employments.rb +0 -2
  80. data/lib/finch-api/resources/hris/individuals.rb +0 -2
  81. data/lib/finch-api/resources/hris/pay_statements.rb +0 -2
  82. data/lib/finch-api/resources/hris/payments.rb +0 -2
  83. data/lib/finch-api/resources/hris.rb +0 -1
  84. data/lib/finch-api/resources/jobs/automated.rb +2 -7
  85. data/lib/finch-api/resources/jobs/manual.rb +0 -2
  86. data/lib/finch-api/resources/jobs.rb +0 -1
  87. data/lib/finch-api/resources/payroll/pay_groups.rb +0 -3
  88. data/lib/finch-api/resources/payroll.rb +0 -1
  89. data/lib/finch-api/resources/providers.rb +0 -2
  90. data/lib/finch-api/resources/request_forwarding.rb +0 -2
  91. data/lib/finch-api/resources/sandbox/company.rb +0 -2
  92. data/lib/finch-api/resources/sandbox/connections/accounts.rb +0 -3
  93. data/lib/finch-api/resources/sandbox/connections.rb +0 -2
  94. data/lib/finch-api/resources/sandbox/directory.rb +0 -2
  95. data/lib/finch-api/resources/sandbox/employment.rb +0 -2
  96. data/lib/finch-api/resources/sandbox/individual.rb +0 -2
  97. data/lib/finch-api/resources/sandbox/jobs/configuration.rb +0 -3
  98. data/lib/finch-api/resources/sandbox/jobs.rb +0 -2
  99. data/lib/finch-api/resources/sandbox/payment.rb +0 -2
  100. data/lib/finch-api/resources/sandbox.rb +0 -1
  101. data/lib/finch-api/resources/webhooks.rb +0 -1
  102. data/lib/finch-api/responses_page.rb +24 -31
  103. data/lib/finch-api/single_page.rb +23 -31
  104. data/lib/finch-api/util.rb +216 -124
  105. data/lib/finch-api/version.rb +1 -1
  106. data/lib/finch-api.rb +17 -0
  107. data/manifest.yaml +1 -0
  108. data/rbi/lib/finch-api/base_client.rbi +89 -66
  109. data/rbi/lib/finch-api/base_model.rbi +403 -236
  110. data/rbi/lib/finch-api/base_page.rbi +3 -6
  111. data/rbi/lib/finch-api/client.rbi +23 -28
  112. data/rbi/lib/finch-api/errors.rbi +20 -22
  113. data/rbi/lib/finch-api/extern.rbi +1 -1
  114. data/rbi/lib/finch-api/individuals_page.rbi +5 -23
  115. data/rbi/lib/finch-api/models/access_token_create_params.rbi +13 -24
  116. data/rbi/lib/finch-api/models/account_disconnect_params.rbi +9 -2
  117. data/rbi/lib/finch-api/models/account_introspect_params.rbi +9 -2
  118. data/rbi/lib/finch-api/models/account_update_event.rbi +871 -983
  119. data/rbi/lib/finch-api/models/base_webhook_event.rbi +13 -19
  120. data/rbi/lib/finch-api/models/company_event.rbi +28 -20
  121. data/rbi/lib/finch-api/models/connect/session_new_params.rbi +90 -104
  122. data/rbi/lib/finch-api/models/connect/session_new_response.rbi +6 -14
  123. data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +37 -47
  124. data/rbi/lib/finch-api/models/connect/session_reauthenticate_response.rbi +6 -14
  125. data/rbi/lib/finch-api/models/connection_status_type.rbi +13 -9
  126. data/rbi/lib/finch-api/models/create_access_token_response.rbi +61 -78
  127. data/rbi/lib/finch-api/models/directory_event.rbi +42 -27
  128. data/rbi/lib/finch-api/models/disconnect_response.rbi +4 -8
  129. data/rbi/lib/finch-api/models/employment_event.rbi +42 -27
  130. data/rbi/lib/finch-api/models/hris/benefit_contribution.rbi +29 -21
  131. data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +18 -26
  132. data/rbi/lib/finch-api/models/hris/benefit_features_and_operations.rbi +199 -86
  133. data/rbi/lib/finch-api/models/hris/benefit_frequency.rbi +9 -6
  134. data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +9 -2
  135. data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +9 -2
  136. data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +9 -2
  137. data/rbi/lib/finch-api/models/hris/benefit_type.rbi +26 -22
  138. data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +7 -11
  139. data/rbi/lib/finch-api/models/hris/benefits/enrolled_individual.rbi +43 -49
  140. data/rbi/lib/finch-api/models/hris/benefits/individual_benefit.rbi +74 -63
  141. data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +249 -104
  142. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +9 -2
  143. data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbi +4 -14
  144. data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +11 -8
  145. data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +7 -8
  146. data/rbi/lib/finch-api/models/hris/benefits/unenrolled_individual.rbi +23 -39
  147. data/rbi/lib/finch-api/models/hris/benefits_support.rbi +88 -86
  148. data/rbi/lib/finch-api/models/hris/benfit_contribution.rbi +1 -1
  149. data/rbi/lib/finch-api/models/hris/company.rbi +119 -171
  150. data/rbi/lib/finch-api/models/hris/company_benefit.rbi +13 -32
  151. data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +9 -2
  152. data/rbi/lib/finch-api/models/hris/create_company_benefits_response.rbi +3 -8
  153. data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +11 -13
  154. data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +11 -13
  155. data/rbi/lib/finch-api/models/hris/document_list_params.rbi +32 -31
  156. data/rbi/lib/finch-api/models/hris/document_list_response.rbi +10 -17
  157. data/rbi/lib/finch-api/models/hris/document_response.rbi +40 -43
  158. data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +9 -2
  159. data/rbi/lib/finch-api/models/hris/document_retreive_response.rbi +6 -4
  160. data/rbi/lib/finch-api/models/hris/employment_data.rbi +163 -205
  161. data/rbi/lib/finch-api/models/hris/employment_data_response.rbi +18 -17
  162. data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +12 -21
  163. data/rbi/lib/finch-api/models/hris/individual.rbi +126 -151
  164. data/rbi/lib/finch-api/models/hris/individual_in_directory.rbi +42 -68
  165. data/rbi/lib/finch-api/models/hris/individual_response.rbi +18 -17
  166. data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +27 -31
  167. data/rbi/lib/finch-api/models/hris/pay_statement.rbi +290 -341
  168. data/rbi/lib/finch-api/models/hris/pay_statement_response.rbi +18 -20
  169. data/rbi/lib/finch-api/models/hris/pay_statement_response_body.rbi +13 -16
  170. data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +18 -31
  171. data/rbi/lib/finch-api/models/hris/payment.rbi +63 -103
  172. data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +9 -15
  173. data/rbi/lib/finch-api/models/hris/support_per_benefit_type.rbi +10 -14
  174. data/rbi/lib/finch-api/models/hris/supported_benefit.rbi +83 -79
  175. data/rbi/lib/finch-api/models/hris/update_company_benefit_response.rbi +3 -8
  176. data/rbi/lib/finch-api/models/hris/w42005.rbi +86 -70
  177. data/rbi/lib/finch-api/models/hris/w42020.rbi +84 -86
  178. data/rbi/lib/finch-api/models/income.rbi +34 -41
  179. data/rbi/lib/finch-api/models/individual_event.rbi +42 -27
  180. data/rbi/lib/finch-api/models/introspection.rbi +138 -178
  181. data/rbi/lib/finch-api/models/job_completion_event.rbi +48 -37
  182. data/rbi/lib/finch-api/models/jobs/automated_async_job.rbi +66 -94
  183. data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +26 -33
  184. data/rbi/lib/finch-api/models/jobs/automated_create_response.rbi +11 -31
  185. data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +11 -13
  186. data/rbi/lib/finch-api/models/jobs/automated_list_response.rbi +126 -0
  187. data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +9 -2
  188. data/rbi/lib/finch-api/models/jobs/manual_async_job.rbi +32 -27
  189. data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +9 -2
  190. data/rbi/lib/finch-api/models/location.rbi +16 -59
  191. data/rbi/lib/finch-api/models/money.rbi +7 -13
  192. data/rbi/lib/finch-api/models/operation_support.rbi +18 -7
  193. data/rbi/lib/finch-api/models/operation_support_matrix.rbi +65 -27
  194. data/rbi/lib/finch-api/models/paging.rbi +10 -12
  195. data/rbi/lib/finch-api/models/pay_statement_event.rbi +46 -32
  196. data/rbi/lib/finch-api/models/payment_event.rbi +39 -34
  197. data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +9 -13
  198. data/rbi/lib/finch-api/models/payroll/pay_group_list_response.rbi +55 -30
  199. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +9 -2
  200. data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_response.rbi +45 -46
  201. data/rbi/lib/finch-api/models/provider.rbi +873 -964
  202. data/rbi/lib/finch-api/models/provider_list_params.rbi +9 -2
  203. data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +20 -33
  204. data/rbi/lib/finch-api/models/request_forwarding_forward_response.rbi +40 -59
  205. data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +144 -166
  206. data/rbi/lib/finch-api/models/sandbox/company_update_response.rbi +145 -174
  207. data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +43 -39
  208. data/rbi/lib/finch-api/models/sandbox/connection_create_response.rbi +38 -59
  209. data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +62 -39
  210. data/rbi/lib/finch-api/models/sandbox/connections/account_create_response.rbi +54 -62
  211. data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +17 -11
  212. data/rbi/lib/finch-api/models/sandbox/connections/account_update_response.rbi +55 -54
  213. data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +377 -332
  214. data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +1 -1
  215. data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +190 -194
  216. data/rbi/lib/finch-api/models/sandbox/employment_update_response.rbi +195 -198
  217. data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +148 -145
  218. data/rbi/lib/finch-api/models/sandbox/individual_update_response.rbi +160 -151
  219. data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +22 -19
  220. data/rbi/lib/finch-api/models/sandbox/job_create_response.rbi +11 -31
  221. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +9 -2
  222. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +2 -1
  223. data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +9 -2
  224. data/rbi/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbi +56 -26
  225. data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +409 -393
  226. data/rbi/lib/finch-api/models/sandbox/payment_create_response.rbi +6 -14
  227. data/rbi/lib/finch-api/models/webhook_event.rbi +4 -4
  228. data/rbi/lib/finch-api/page.rbi +5 -23
  229. data/rbi/lib/finch-api/pooled_net_requester.rbi +39 -16
  230. data/rbi/lib/finch-api/request_options.rbi +33 -54
  231. data/rbi/lib/finch-api/resources/access_tokens.rbi +4 -3
  232. data/rbi/lib/finch-api/resources/account.rbi +6 -4
  233. data/rbi/lib/finch-api/resources/connect/sessions.rbi +17 -8
  234. data/rbi/lib/finch-api/resources/connect.rbi +3 -4
  235. data/rbi/lib/finch-api/resources/hris/benefits/individuals.rbi +33 -10
  236. data/rbi/lib/finch-api/resources/hris/benefits.rbi +32 -13
  237. data/rbi/lib/finch-api/resources/hris/company.rbi +4 -3
  238. data/rbi/lib/finch-api/resources/hris/directory.rbi +11 -15
  239. data/rbi/lib/finch-api/resources/hris/documents.rbi +27 -7
  240. data/rbi/lib/finch-api/resources/hris/employments.rbi +10 -5
  241. data/rbi/lib/finch-api/resources/hris/individuals.rbi +6 -5
  242. data/rbi/lib/finch-api/resources/hris/pay_statements.rbi +13 -5
  243. data/rbi/lib/finch-api/resources/hris/payments.rbi +13 -4
  244. data/rbi/lib/finch-api/resources/hris.rbi +10 -18
  245. data/rbi/lib/finch-api/resources/jobs/automated.rbi +39 -10
  246. data/rbi/lib/finch-api/resources/jobs/manual.rbi +5 -3
  247. data/rbi/lib/finch-api/resources/jobs.rbi +4 -6
  248. data/rbi/lib/finch-api/resources/payroll/pay_groups.rbi +6 -4
  249. data/rbi/lib/finch-api/resources/payroll.rbi +3 -4
  250. data/rbi/lib/finch-api/resources/providers.rbi +4 -3
  251. data/rbi/lib/finch-api/resources/request_forwarding.rbi +27 -4
  252. data/rbi/lib/finch-api/resources/sandbox/company.rbi +19 -7
  253. data/rbi/lib/finch-api/resources/sandbox/connections/accounts.rbi +19 -7
  254. data/rbi/lib/finch-api/resources/sandbox/connections.rbi +10 -6
  255. data/rbi/lib/finch-api/resources/sandbox/directory.rbi +12 -6
  256. data/rbi/lib/finch-api/resources/sandbox/employment.rbi +30 -11
  257. data/rbi/lib/finch-api/resources/sandbox/individual.rbi +26 -8
  258. data/rbi/lib/finch-api/resources/sandbox/jobs/configuration.rbi +9 -7
  259. data/rbi/lib/finch-api/resources/sandbox/jobs.rbi +11 -7
  260. data/rbi/lib/finch-api/resources/sandbox/payment.rbi +5 -4
  261. data/rbi/lib/finch-api/resources/sandbox.rbi +9 -16
  262. data/rbi/lib/finch-api/resources/webhooks.rbi +2 -2
  263. data/rbi/lib/finch-api/responses_page.rbi +4 -17
  264. data/rbi/lib/finch-api/single_page.rbi +4 -12
  265. data/rbi/lib/finch-api/util.rbi +228 -115
  266. data/rbi/lib/finch-api/version.rbi +1 -1
  267. data/sig/finch-api/base_client.rbs +20 -15
  268. data/sig/finch-api/base_model.rbs +36 -18
  269. data/sig/finch-api/base_page.rbs +1 -1
  270. data/sig/finch-api/client.rbs +8 -8
  271. data/sig/finch-api/errors.rbs +21 -21
  272. data/sig/finch-api/individuals_page.rbs +2 -7
  273. data/sig/finch-api/models/access_token_create_params.rbs +7 -12
  274. data/sig/finch-api/models/account_disconnect_params.rbs +1 -6
  275. data/sig/finch-api/models/account_introspect_params.rbs +1 -6
  276. data/sig/finch-api/models/account_update_event.rbs +204 -361
  277. data/sig/finch-api/models/base_webhook_event.rbs +5 -5
  278. data/sig/finch-api/models/company_event.rbs +13 -11
  279. data/sig/finch-api/models/connect/session_new_params.rbs +28 -32
  280. data/sig/finch-api/models/connect/session_new_response.rbs +1 -6
  281. data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +11 -14
  282. data/sig/finch-api/models/connect/session_reauthenticate_response.rbs +1 -6
  283. data/sig/finch-api/models/connection_status_type.rbs +4 -2
  284. data/sig/finch-api/models/create_access_token_response.rbs +20 -21
  285. data/sig/finch-api/models/directory_event.rbs +13 -19
  286. data/sig/finch-api/models/disconnect_response.rbs +1 -5
  287. data/sig/finch-api/models/employment_event.rbs +13 -19
  288. data/sig/finch-api/models/hris/benefit_contribution.rbs +8 -11
  289. data/sig/finch-api/models/hris/benefit_create_params.rbs +6 -11
  290. data/sig/finch-api/models/hris/benefit_features_and_operations.rbs +25 -29
  291. data/sig/finch-api/models/hris/benefit_frequency.rbs +4 -2
  292. data/sig/finch-api/models/hris/benefit_list_params.rbs +1 -6
  293. data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +1 -6
  294. data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +1 -6
  295. data/sig/finch-api/models/hris/benefit_type.rbs +4 -2
  296. data/sig/finch-api/models/hris/benefit_update_params.rbs +4 -6
  297. data/sig/finch-api/models/hris/benefits/enrolled_individual.rbs +14 -18
  298. data/sig/finch-api/models/hris/benefits/individual_benefit.rbs +16 -25
  299. data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +35 -54
  300. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +1 -6
  301. data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbs +4 -6
  302. data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +4 -9
  303. data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +4 -9
  304. data/sig/finch-api/models/hris/benefits/unenrolled_individual.rbs +10 -16
  305. data/sig/finch-api/models/hris/benefits_support.rbs +14 -18
  306. data/sig/finch-api/models/hris/benfit_contribution.rbs +0 -1
  307. data/sig/finch-api/models/hris/company.rbs +39 -57
  308. data/sig/finch-api/models/hris/company_benefit.rbs +6 -10
  309. data/sig/finch-api/models/hris/company_retrieve_params.rbs +1 -6
  310. data/sig/finch-api/models/hris/create_company_benefits_response.rbs +1 -6
  311. data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +5 -10
  312. data/sig/finch-api/models/hris/directory_list_params.rbs +5 -10
  313. data/sig/finch-api/models/hris/document_list_params.rbs +11 -14
  314. data/sig/finch-api/models/hris/document_list_response.rbs +4 -9
  315. data/sig/finch-api/models/hris/document_response.rbs +11 -14
  316. data/sig/finch-api/models/hris/document_retreive_params.rbs +1 -6
  317. data/sig/finch-api/models/hris/document_retreive_response.rbs +4 -2
  318. data/sig/finch-api/models/hris/employment_data.rbs +41 -59
  319. data/sig/finch-api/models/hris/employment_data_response.rbs +5 -10
  320. data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +5 -15
  321. data/sig/finch-api/models/hris/individual.rbs +39 -45
  322. data/sig/finch-api/models/hris/individual_in_directory.rbs +11 -26
  323. data/sig/finch-api/models/hris/individual_response.rbs +5 -10
  324. data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +7 -22
  325. data/sig/finch-api/models/hris/pay_statement.rbs +75 -131
  326. data/sig/finch-api/models/hris/pay_statement_response.rbs +5 -10
  327. data/sig/finch-api/models/hris/pay_statement_response_body.rbs +4 -9
  328. data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +9 -15
  329. data/sig/finch-api/models/hris/payment.rbs +19 -26
  330. data/sig/finch-api/models/hris/payment_list_params.rbs +5 -10
  331. data/sig/finch-api/models/hris/support_per_benefit_type.rbs +4 -9
  332. data/sig/finch-api/models/hris/supported_benefit.rbs +22 -21
  333. data/sig/finch-api/models/hris/update_company_benefit_response.rbs +1 -6
  334. data/sig/finch-api/models/hris/w42005.rbs +26 -30
  335. data/sig/finch-api/models/hris/w42020.rbs +23 -25
  336. data/sig/finch-api/models/income.rbs +10 -10
  337. data/sig/finch-api/models/individual_event.rbs +13 -19
  338. data/sig/finch-api/models/introspection.rbs +43 -54
  339. data/sig/finch-api/models/job_completion_event.rbs +13 -20
  340. data/sig/finch-api/models/jobs/automated_async_job.rbs +20 -26
  341. data/sig/finch-api/models/jobs/automated_create_params.rbs +10 -18
  342. data/sig/finch-api/models/jobs/automated_create_response.rbs +6 -11
  343. data/sig/finch-api/models/jobs/automated_list_params.rbs +5 -10
  344. data/sig/finch-api/models/jobs/automated_list_response.rbs +82 -0
  345. data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +1 -6
  346. data/sig/finch-api/models/jobs/manual_async_job.rbs +9 -11
  347. data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +1 -6
  348. data/sig/finch-api/models/location.rbs +10 -12
  349. data/sig/finch-api/models/money.rbs +1 -3
  350. data/sig/finch-api/models/operation_support.rbs +4 -2
  351. data/sig/finch-api/models/operation_support_matrix.rbs +6 -10
  352. data/sig/finch-api/models/paging.rbs +1 -3
  353. data/sig/finch-api/models/pay_statement_event.rbs +13 -20
  354. data/sig/finch-api/models/payment_event.rbs +13 -17
  355. data/sig/finch-api/models/payroll/pay_group_list_params.rbs +5 -10
  356. data/sig/finch-api/models/payroll/pay_group_list_response.rbs +9 -12
  357. data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +1 -6
  358. data/sig/finch-api/models/payroll/pay_group_retrieve_response.rbs +10 -13
  359. data/sig/finch-api/models/provider.rbs +200 -347
  360. data/sig/finch-api/models/provider_list_params.rbs +1 -5
  361. data/sig/finch-api/models/request_forwarding_forward_params.rbs +8 -13
  362. data/sig/finch-api/models/request_forwarding_forward_response.rbs +13 -23
  363. data/sig/finch-api/models/sandbox/company_update_params.rbs +39 -58
  364. data/sig/finch-api/models/sandbox/company_update_response.rbs +38 -57
  365. data/sig/finch-api/models/sandbox/connection_create_params.rbs +11 -14
  366. data/sig/finch-api/models/sandbox/connection_create_response.rbs +14 -17
  367. data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +11 -14
  368. data/sig/finch-api/models/sandbox/connections/account_create_response.rbs +13 -16
  369. data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +4 -9
  370. data/sig/finch-api/models/sandbox/connections/account_update_response.rbs +12 -15
  371. data/sig/finch-api/models/sandbox/directory_create_params.rbs +78 -106
  372. data/sig/finch-api/models/sandbox/employment_update_params.rbs +40 -59
  373. data/sig/finch-api/models/sandbox/employment_update_response.rbs +40 -59
  374. data/sig/finch-api/models/sandbox/individual_update_params.rbs +41 -50
  375. data/sig/finch-api/models/sandbox/individual_update_response.rbs +41 -50
  376. data/sig/finch-api/models/sandbox/job_create_params.rbs +8 -11
  377. data/sig/finch-api/models/sandbox/job_create_response.rbs +6 -11
  378. data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +1 -6
  379. data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +1 -6
  380. data/sig/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbs +12 -13
  381. data/sig/finch-api/models/sandbox/payment_create_params.rbs +81 -143
  382. data/sig/finch-api/models/sandbox/payment_create_response.rbs +1 -6
  383. data/sig/finch-api/models/webhook_event.rbs +5 -3
  384. data/sig/finch-api/page.rbs +2 -7
  385. data/sig/finch-api/pooled_net_requester.rbs +13 -4
  386. data/sig/finch-api/request_options.rbs +6 -2
  387. data/sig/finch-api/resources/access_tokens.rbs +7 -11
  388. data/sig/finch-api/resources/account.rbs +6 -16
  389. data/sig/finch-api/resources/connect/sessions.rbs +19 -29
  390. data/sig/finch-api/resources/hris/benefits/individuals.rbs +19 -43
  391. data/sig/finch-api/resources/hris/benefits.rbs +21 -48
  392. data/sig/finch-api/resources/hris/company.rbs +3 -8
  393. data/sig/finch-api/resources/hris/directory.rbs +6 -20
  394. data/sig/finch-api/resources/hris/documents.rbs +11 -22
  395. data/sig/finch-api/resources/hris/employments.rbs +4 -9
  396. data/sig/finch-api/resources/hris/individuals.rbs +5 -10
  397. data/sig/finch-api/resources/hris/pay_statements.rbs +4 -9
  398. data/sig/finch-api/resources/hris/payments.rbs +5 -10
  399. data/sig/finch-api/resources/jobs/automated.rbs +14 -30
  400. data/sig/finch-api/resources/jobs/manual.rbs +4 -10
  401. data/sig/finch-api/resources/payroll/pay_groups.rbs +9 -20
  402. data/sig/finch-api/resources/providers.rbs +3 -7
  403. data/sig/finch-api/resources/request_forwarding.rbs +8 -13
  404. data/sig/finch-api/resources/sandbox/company.rbs +11 -16
  405. data/sig/finch-api/resources/sandbox/connections/accounts.rbs +11 -21
  406. data/sig/finch-api/resources/sandbox/connections.rbs +7 -12
  407. data/sig/finch-api/resources/sandbox/directory.rbs +4 -9
  408. data/sig/finch-api/resources/sandbox/employment.rbs +22 -28
  409. data/sig/finch-api/resources/sandbox/individual.rbs +16 -22
  410. data/sig/finch-api/resources/sandbox/jobs/configuration.rbs +8 -18
  411. data/sig/finch-api/resources/sandbox/jobs.rbs +4 -9
  412. data/sig/finch-api/resources/sandbox/payment.rbs +6 -11
  413. data/sig/finch-api/responses_page.rbs +2 -7
  414. data/sig/finch-api/single_page.rbs +2 -7
  415. data/sig/finch-api/util.rbs +37 -12
  416. data/sig/finch-api/version.rbs +1 -1
  417. metadata +7 -4
@@ -243,28 +243,10 @@ module FinchAPI
243
243
  end
244
244
  end
245
245
 
246
- # @abstract
247
- #
248
246
  # The type of earning.
249
- #
250
- # @example
251
- # ```ruby
252
- # case type
253
- # in :salary
254
- # # ...
255
- # in :wage
256
- # # ...
257
- # in :reimbursement
258
- # # ...
259
- # in :overtime
260
- # # ...
261
- # in :severance
262
- # # ...
263
- # in ...
264
- # #...
265
- # end
266
- # ```
267
- class Type < FinchAPI::Enum
247
+ module Type
248
+ extend FinchAPI::Enum
249
+
268
250
  SALARY = :salary
269
251
  WAGE = :wage
270
252
  REIMBURSEMENT = :reimbursement
@@ -283,7 +265,6 @@ module FinchAPI
283
265
 
284
266
  # @!parse
285
267
  # # @return [Array<Symbol>]
286
- # #
287
268
  # def self.values; end
288
269
  end
289
270
  end
@@ -463,20 +444,10 @@ module FinchAPI
463
444
  end
464
445
  end
465
446
 
466
- # @abstract
467
- #
468
447
  # The payment method.
469
- #
470
- # @example
471
- # ```ruby
472
- # case payment_method
473
- # in :check
474
- # # ...
475
- # in :direct_deposit
476
- # # ...
477
- # end
478
- # ```
479
- class PaymentMethod < FinchAPI::Enum
448
+ module PaymentMethod
449
+ extend FinchAPI::Enum
450
+
480
451
  CHECK = :check
481
452
  DIRECT_DEPOSIT = :direct_deposit
482
453
 
@@ -484,7 +455,6 @@ module FinchAPI
484
455
 
485
456
  # @!parse
486
457
  # # @return [Array<Symbol>]
487
- # #
488
458
  # def self.values; end
489
459
  end
490
460
 
@@ -580,24 +550,10 @@ module FinchAPI
580
550
  end
581
551
  end
582
552
 
583
- # @abstract
584
- #
585
553
  # The type of taxes.
586
- #
587
- # @example
588
- # ```ruby
589
- # case type
590
- # in :state
591
- # # ...
592
- # in :federal
593
- # # ...
594
- # in :local
595
- # # ...
596
- # in :fica
597
- # # ...
598
- # end
599
- # ```
600
- class Type < FinchAPI::Enum
554
+ module Type
555
+ extend FinchAPI::Enum
556
+
601
557
  STATE = :state
602
558
  FEDERAL = :federal
603
559
  LOCAL = :local
@@ -607,27 +563,14 @@ module FinchAPI
607
563
 
608
564
  # @!parse
609
565
  # # @return [Array<Symbol>]
610
- # #
611
566
  # def self.values; end
612
567
  end
613
568
  end
614
569
 
615
- # @abstract
616
- #
617
570
  # The type of the payment associated with the pay statement.
618
- #
619
- # @example
620
- # ```ruby
621
- # case type
622
- # in :regular_payroll
623
- # # ...
624
- # in :off_cycle_payroll
625
- # # ...
626
- # in :one_time_payment
627
- # # ...
628
- # end
629
- # ```
630
- class Type < FinchAPI::Enum
571
+ module Type
572
+ extend FinchAPI::Enum
573
+
631
574
  REGULAR_PAYROLL = :regular_payroll
632
575
  OFF_CYCLE_PAYROLL = :off_cycle_payroll
633
576
  ONE_TIME_PAYMENT = :one_time_payment
@@ -636,7 +579,6 @@ module FinchAPI
636
579
 
637
580
  # @!parse
638
581
  # # @return [Array<Symbol>]
639
- # #
640
582
  # def self.values; end
641
583
  end
642
584
  end
@@ -2,37 +2,16 @@
2
2
 
3
3
  module FinchAPI
4
4
  module Models
5
- # @abstract
6
- #
7
- # @example
8
- # ```ruby
9
- # case webhook_event
10
- # in FinchAPI::Models::AccountUpdateEvent
11
- # # ...
12
- # in FinchAPI::Models::JobCompletionEvent
13
- # # ...
14
- # in FinchAPI::Models::CompanyEvent
15
- # # ...
16
- # in FinchAPI::Models::DirectoryEvent
17
- # # ...
18
- # in FinchAPI::Models::EmploymentEvent
19
- # # ...
20
- # in FinchAPI::Models::IndividualEvent
21
- # # ...
22
- # in FinchAPI::Models::PaymentEvent
23
- # # ...
24
- # in FinchAPI::Models::PayStatementEvent
25
- # # ...
26
- # end
27
- # ```
28
- class WebhookEvent < FinchAPI::Union
5
+ module WebhookEvent
6
+ extend FinchAPI::Union
7
+
29
8
  discriminator :event_type
30
9
 
31
- variant -> { FinchAPI::Models::AccountUpdateEvent }
10
+ variant :"account.updated", -> { FinchAPI::Models::AccountUpdateEvent }
32
11
 
33
- variant -> { FinchAPI::Models::JobCompletionEvent }
12
+ variant :"company.updated", -> { FinchAPI::Models::CompanyEvent }
34
13
 
35
- variant -> { FinchAPI::Models::CompanyEvent }
14
+ variant -> { FinchAPI::Models::JobCompletionEvent }
36
15
 
37
16
  variant -> { FinchAPI::Models::DirectoryEvent }
38
17
 
@@ -43,6 +22,10 @@ module FinchAPI
43
22
  variant -> { FinchAPI::Models::PaymentEvent }
44
23
 
45
24
  variant -> { FinchAPI::Models::PayStatementEvent }
25
+
26
+ # @!parse
27
+ # # @return [Array(FinchAPI::Models::AccountUpdateEvent, FinchAPI::Models::CompanyEvent, FinchAPI::Models::JobCompletionEvent, FinchAPI::Models::DirectoryEvent, FinchAPI::Models::EmploymentEvent, FinchAPI::Models::IndividualEvent, FinchAPI::Models::PaymentEvent, FinchAPI::Models::PayStatementEvent)]
28
+ # def self.variants; end
46
29
  end
47
30
  end
48
31
  end
@@ -2,84 +2,79 @@
2
2
 
3
3
  module FinchAPI
4
4
  # @example
5
- # ```ruby
6
- # if page.has_next?
7
- # page = page.next_page
8
- # end
9
- # ```
5
+ # if page.has_next?
6
+ # page = page.next_page
7
+ # end
10
8
  #
11
9
  # @example
12
- # ```ruby
13
- # page.auto_paging_each do |item|
14
- # # item ...
15
- # end
16
- # ```
10
+ # page.auto_paging_each do |item|
11
+ # puts(item)
12
+ # end
17
13
  #
18
14
  # @example
19
- # ```ruby
20
- # items = page.to_enum.take(2)
15
+ # items =
16
+ # page
17
+ # .to_enum
18
+ # .lazy
19
+ # .select { _1.object_id.even? }
20
+ # .map(&:itself)
21
+ # .take(2)
22
+ # .to_a
21
23
  #
22
- # items => Array
23
- # ```
24
+ # items => Array
24
25
  class Page
25
26
  include FinchAPI::BasePage
26
27
 
27
- # @return [Array<Object>]
28
+ # @return [Array<Object>, nil]
28
29
  attr_accessor :data
29
30
 
30
31
  # @return [FinchAPI::Models::Paging]
31
32
  attr_accessor :paging
32
33
 
33
- # rubocop:disable Lint/UnusedMethodArgument
34
- # @private
34
+ # @api private
35
35
  #
36
36
  # @param client [FinchAPI::BaseClient]
37
37
  # @param req [Hash{Symbol=>Object}]
38
38
  # @param headers [Hash{String=>String}, Net::HTTPHeader]
39
- # @param unwrapped [Hash{Symbol=>Object}]
40
- #
41
- def initialize(client:, req:, headers:, unwrapped:)
42
- @client = client
43
- @req = req
39
+ # @param page_data [Hash{Symbol=>Object}]
40
+ def initialize(client:, req:, headers:, page_data:)
41
+ super
44
42
  model = req.fetch(:model)
45
43
 
46
- case unwrapped
44
+ case page_data
47
45
  in {data: Array | nil => data}
48
- @data = data&.map { model.coerce(_1) }
46
+ @data = data&.map { FinchAPI::Converter.coerce(model, _1) }
49
47
  else
50
48
  end
51
49
 
52
- case unwrapped
50
+ case page_data
53
51
  in {paging: Hash | nil => paging}
54
52
  @paging = FinchAPI::Models::Paging.coerce(paging)
55
53
  else
56
54
  end
57
55
  end
58
- # rubocop:enable Lint/UnusedMethodArgument
59
56
 
60
57
  # @return [Boolean]
61
- #
62
58
  def next_page?
63
- paging&.offset.to_i + data.size < paging&.count.to_i
59
+ paging&.offset.to_i + data.to_a.size < paging&.count.to_i
64
60
  end
65
61
 
66
62
  # @raise [FinchAPI::HTTP::Error]
67
63
  # @return [FinchAPI::Page]
68
- #
69
64
  def next_page
70
65
  unless next_page?
71
- raise RuntimeError.new("No more pages available; please check #next_page? before calling #next_page")
66
+ message = "No more pages available. Please check #next_page? before calling ##{__method__}"
67
+ raise RuntimeError.new(message)
72
68
  end
73
69
 
74
- req = FinchAPI::Util.deep_merge(@req, {query: {offset: paging&.offset.to_i + data.size}})
70
+ req = FinchAPI::Util.deep_merge(@req, {query: {offset: paging&.offset.to_i + data.to_a.size}})
75
71
  @client.request(req)
76
72
  end
77
73
 
78
74
  # @param blk [Proc]
79
- #
80
75
  def auto_paging_each(&blk)
81
76
  unless block_given?
82
- raise ArgumentError.new("A block must be given to #auto_paging_each")
77
+ raise ArgumentError.new("A block must be given to ##{__method__}")
83
78
  end
84
79
  page = self
85
80
  loop do
@@ -90,7 +85,6 @@ module FinchAPI
90
85
  end
91
86
 
92
87
  # @return [String]
93
- #
94
88
  def inspect
95
89
  "#<#{self.class}:0x#{object_id.to_s(16)} data=#{data.inspect} paging=#{paging.inspect}>"
96
90
  end
@@ -1,16 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinchAPI
4
- # @private
5
- #
4
+ # @api private
6
5
  class PooledNetRequester
6
+ # from the golang stdlib
7
+ # https://github.com/golang/go/blob/c8eced8580028328fde7c03cbfcb720ce15b2358/src/net/http/transport.go#L49
8
+ KEEP_ALIVE_TIMEOUT = 30
9
+
7
10
  class << self
8
- # @private
11
+ # @api private
9
12
  #
10
13
  # @param url [URI::Generic]
11
14
  #
12
15
  # @return [Net::HTTP]
13
- #
14
16
  def connect(url)
15
17
  port =
16
18
  case [url.port, url.scheme]
@@ -28,17 +30,16 @@ module FinchAPI
28
30
  end
29
31
  end
30
32
 
31
- # @private
33
+ # @api private
32
34
  #
33
35
  # @param conn [Net::HTTP]
34
36
  # @param deadline [Float]
35
- #
36
37
  def calibrate_socket_timeout(conn, deadline)
37
38
  timeout = deadline - FinchAPI::Util.monotonic_secs
38
39
  conn.open_timeout = conn.read_timeout = conn.write_timeout = conn.continue_timeout = timeout
39
40
  end
40
41
 
41
- # @private
42
+ # @api private
42
43
  #
43
44
  # @param request [Hash{Symbol=>Object}] .
44
45
  #
@@ -48,9 +49,11 @@ module FinchAPI
48
49
  #
49
50
  # @option request [Hash{String=>String}] :headers
50
51
  #
51
- # @return [Net::HTTPGenericRequest]
52
+ # @param blk [Proc]
52
53
  #
53
- def build_request(request)
54
+ # @yieldparam [String]
55
+ # @return [Net::HTTPGenericRequest]
56
+ def build_request(request, &)
54
57
  method, url, headers, body = request.fetch_values(:method, :url, :headers, :body)
55
58
  req = Net::HTTPGenericRequest.new(
56
59
  method.to_s.upcase,
@@ -63,54 +66,44 @@ module FinchAPI
63
66
 
64
67
  case body
65
68
  in nil
69
+ nil
66
70
  in String
67
- req.body = body
71
+ req["content-length"] ||= body.bytesize.to_s unless req["transfer-encoding"]
72
+ req.body_stream = FinchAPI::Util::ReadIOAdapter.new(body, &)
68
73
  in StringIO
69
- req.body = body.string
70
- in IO
71
- body.rewind
72
- req.body_stream = body
74
+ req["content-length"] ||= body.size.to_s unless req["transfer-encoding"]
75
+ req.body_stream = FinchAPI::Util::ReadIOAdapter.new(body, &)
76
+ in IO | Enumerator
77
+ req["transfer-encoding"] ||= "chunked" unless req["content-length"]
78
+ req.body_stream = FinchAPI::Util::ReadIOAdapter.new(body, &)
73
79
  end
74
80
 
75
81
  req
76
82
  end
77
83
  end
78
84
 
79
- # @private
85
+ # @api private
80
86
  #
81
87
  # @param url [URI::Generic]
88
+ # @param deadline [Float]
82
89
  # @param blk [Proc]
83
90
  #
84
- private def with_pool(url, &blk)
91
+ # @raise [Timeout::Error]
92
+ # @yieldparam [Net::HTTP]
93
+ private def with_pool(url, deadline:, &blk)
85
94
  origin = FinchAPI::Util.uri_origin(url)
86
- th = Thread.current
87
- key = :"#{object_id}-#{self.class.name}-connection_in_use_for_#{origin}"
88
-
89
- if th[key]
90
- tap do
91
- conn = self.class.connect(url)
92
- return blk.call(conn)
93
- ensure
94
- conn.finish if conn&.started?
95
- end
96
- end
97
-
95
+ timeout = deadline - FinchAPI::Util.monotonic_secs
98
96
  pool =
99
97
  @mutex.synchronize do
100
- @pools[origin] ||= ConnectionPool.new(size: Etc.nprocessors) do
98
+ @pools[origin] ||= ConnectionPool.new(size: @size) do
101
99
  self.class.connect(url)
102
100
  end
103
101
  end
104
102
 
105
- pool.with do |conn|
106
- th[key] = true
107
- blk.call(conn)
108
- ensure
109
- th[key] = nil
110
- end
103
+ pool.with(timeout: timeout, &blk)
111
104
  end
112
105
 
113
- # @private
106
+ # @api private
114
107
  #
115
108
  # @param request [Hash{Symbol=>Object}] .
116
109
  #
@@ -124,24 +117,29 @@ module FinchAPI
124
117
  #
125
118
  # @option request [Float] :deadline
126
119
  #
127
- # @return [Array(Net::HTTPResponse, Enumerable)]
128
- #
120
+ # @return [Array(Integer, Net::HTTPResponse, Enumerable)]
129
121
  def execute(request)
130
122
  url, deadline = request.fetch_values(:url, :deadline)
131
- req = self.class.build_request(request)
132
123
 
133
124
  eof = false
134
125
  finished = false
135
126
  enum = Enumerator.new do |y|
136
- with_pool(url) do |conn|
127
+ with_pool(url, deadline: deadline) do |conn|
137
128
  next if finished
138
129
 
130
+ req = self.class.build_request(request) do
131
+ self.class.calibrate_socket_timeout(conn, deadline)
132
+ end
133
+
139
134
  self.class.calibrate_socket_timeout(conn, deadline)
140
- conn.start unless conn.started?
135
+ unless conn.started?
136
+ conn.keep_alive_timeout = self.class::KEEP_ALIVE_TIMEOUT
137
+ conn.start
138
+ end
141
139
 
142
140
  self.class.calibrate_socket_timeout(conn, deadline)
143
141
  conn.request(req) do |rsp|
144
- y << [conn, rsp]
142
+ y << [conn, req, rsp]
145
143
  break if finished
146
144
 
147
145
  rsp.read_body do |bytes|
@@ -153,22 +151,29 @@ module FinchAPI
153
151
  eof = true
154
152
  end
155
153
  end
154
+ rescue Timeout::Error
155
+ raise FinchAPI::APITimeoutError
156
156
  end
157
157
 
158
- conn, response = enum.next
159
- body = FinchAPI::Util.fused_enum(enum) do
158
+ conn, _, response = enum.next
159
+ body = FinchAPI::Util.fused_enum(enum, external: true) do
160
160
  finished = true
161
161
  tap do
162
162
  enum.next
163
163
  rescue StopIteration
164
+ nil
164
165
  end
165
166
  conn.finish if !eof && conn&.started?
166
167
  end
167
- [response, (response.body = body)]
168
+ [Integer(response.code), response, (response.body = body)]
168
169
  end
169
170
 
170
- def initialize
171
+ # @api private
172
+ #
173
+ # @param size [Integer]
174
+ def initialize(size: Etc.nprocessors)
171
175
  @mutex = Mutex.new
176
+ @size = size
172
177
  @pools = {}
173
178
  end
174
179
  end
@@ -1,10 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinchAPI
4
- # @private
5
- #
6
- # @abstract
7
- #
4
+ # @api private
8
5
  module RequestParameters
9
6
  # @!parse
10
7
  # # Options to specify HTTP behaviour for this request.
@@ -12,7 +9,6 @@ module FinchAPI
12
9
  # attr_accessor :request_options
13
10
 
14
11
  # @param mod [Module]
15
- #
16
12
  def self.included(mod)
17
13
  return unless mod <= FinchAPI::BaseModel
18
14
 
@@ -20,15 +16,13 @@ module FinchAPI
20
16
  mod.optional(:request_options, FinchAPI::RequestOptions)
21
17
  end
22
18
 
23
- # @private
24
- #
19
+ # @api private
25
20
  module Converter
26
- # @private
21
+ # @api private
27
22
  #
28
23
  # @param params [Object]
29
24
  #
30
25
  # @return [Array(Object, Hash{Symbol=>Object})]
31
- #
32
26
  def dump_request(params)
33
27
  case (dumped = dump(params))
34
28
  in Hash
@@ -46,12 +40,11 @@ module FinchAPI
46
40
  # When making a request, you can pass an actual {RequestOptions} instance, or
47
41
  # simply pass a Hash with symbol keys matching the attributes on this class.
48
42
  class RequestOptions < FinchAPI::BaseModel
49
- # @private
43
+ # @api private
50
44
  #
51
45
  # @param opts [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
52
46
  #
53
47
  # @raise [ArgumentError]
54
- #
55
48
  def self.validate!(opts)
56
49
  case opts
57
50
  in FinchAPI::RequestOptions | Hash
@@ -90,7 +83,7 @@ module FinchAPI
90
83
  # Extra data to send with the request. These are deep merged into any data
91
84
  # generated as part of the normal request.
92
85
  #
93
- # @return [Hash{Symbol=>Object}, nil]
86
+ # @return [Object, nil]
94
87
  optional :extra_body, FinchAPI::HashOf[FinchAPI::Unknown]
95
88
 
96
89
  # @!attribute max_retries
@@ -18,7 +18,6 @@ module FinchAPI
18
18
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
19
19
  #
20
20
  # @return [FinchAPI::Models::CreateAccessTokenResponse]
21
- #
22
21
  def create(params)
23
22
  parsed, options = FinchAPI::Models::AccessTokenCreateParams.dump_request(params)
24
23
  @client.request(
@@ -31,7 +30,6 @@ module FinchAPI
31
30
  end
32
31
 
33
32
  # @param client [FinchAPI::Client]
34
- #
35
33
  def initialize(client:)
36
34
  @client = client
37
35
  end
@@ -10,7 +10,6 @@ module FinchAPI
10
10
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
11
11
  #
12
12
  # @return [FinchAPI::Models::DisconnectResponse]
13
- #
14
13
  def disconnect(params = {})
15
14
  @client.request(
16
15
  method: :post,
@@ -27,7 +26,6 @@ module FinchAPI
27
26
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
28
27
  #
29
28
  # @return [FinchAPI::Models::Introspection]
30
- #
31
29
  def introspect(params = {})
32
30
  @client.request(
33
31
  method: :get,
@@ -38,7 +36,6 @@ module FinchAPI
38
36
  end
39
37
 
40
38
  # @param client [FinchAPI::Client]
41
- #
42
39
  def initialize(client:)
43
40
  @client = client
44
41
  end
@@ -30,7 +30,6 @@ module FinchAPI
30
30
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
31
31
  #
32
32
  # @return [FinchAPI::Models::Connect::SessionNewResponse]
33
- #
34
33
  def new(params)
35
34
  parsed, options = FinchAPI::Models::Connect::SessionNewParams.dump_request(params)
36
35
  @client.request(
@@ -58,7 +57,6 @@ module FinchAPI
58
57
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
59
58
  #
60
59
  # @return [FinchAPI::Models::Connect::SessionReauthenticateResponse]
61
- #
62
60
  def reauthenticate(params)
63
61
  parsed, options = FinchAPI::Models::Connect::SessionReauthenticateParams.dump_request(params)
64
62
  @client.request(
@@ -71,7 +69,6 @@ module FinchAPI
71
69
  end
72
70
 
73
71
  # @param client [FinchAPI::Client]
74
- #
75
72
  def initialize(client:)
76
73
  @client = client
77
74
  end
@@ -7,7 +7,6 @@ module FinchAPI
7
7
  attr_reader :sessions
8
8
 
9
9
  # @param client [FinchAPI::Client]
10
- #
11
10
  def initialize(client:)
12
11
  @client = client
13
12
  @sessions = FinchAPI::Resources::Connect::Sessions.new(client: client)
@@ -19,7 +19,6 @@ module FinchAPI
19
19
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
20
20
  #
21
21
  # @return [FinchAPI::SinglePage<FinchAPI::Models::HRIS::Benefits::EnrolledIndividual>]
22
- #
23
22
  def enroll_many(benefit_id, params = {})
24
23
  parsed, options = FinchAPI::Models::HRIS::Benefits::IndividualEnrollManyParams.dump_request(params)
25
24
  @client.request(
@@ -41,7 +40,6 @@ module FinchAPI
41
40
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
42
41
  #
43
42
  # @return [FinchAPI::Models::HRIS::Benefits::IndividualEnrolledIDsResponse]
44
- #
45
43
  def enrolled_ids(benefit_id, params = {})
46
44
  @client.request(
47
45
  method: :get,
@@ -63,9 +61,9 @@ module FinchAPI
63
61
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
64
62
  #
65
63
  # @return [FinchAPI::SinglePage<FinchAPI::Models::HRIS::Benefits::IndividualBenefit>]
66
- #
67
64
  def retrieve_many_benefits(benefit_id, params = {})
68
- parsed, options = FinchAPI::Models::HRIS::Benefits::IndividualRetrieveManyBenefitsParams.dump_request(params)
65
+ parsed, options =
66
+ FinchAPI::Models::HRIS::Benefits::IndividualRetrieveManyBenefitsParams.dump_request(params)
69
67
  @client.request(
70
68
  method: :get,
71
69
  path: ["employer/benefits/%0s/individuals", benefit_id],
@@ -87,7 +85,6 @@ module FinchAPI
87
85
  # @option params [FinchAPI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options
88
86
  #
89
87
  # @return [FinchAPI::SinglePage<FinchAPI::Models::HRIS::Benefits::UnenrolledIndividual>]
90
- #
91
88
  def unenroll_many(benefit_id, params = {})
92
89
  parsed, options = FinchAPI::Models::HRIS::Benefits::IndividualUnenrollManyParams.dump_request(params)
93
90
  @client.request(
@@ -101,7 +98,6 @@ module FinchAPI
101
98
  end
102
99
 
103
100
  # @param client [FinchAPI::Client]
104
- #
105
101
  def initialize(client:)
106
102
  @client = client
107
103
  end