finch-api 0.1.0.pre.alpha.1
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.
- checksums.yaml +7 -0
- data/README.md +124 -0
- data/lib/finch-api/base_client.rb +464 -0
- data/lib/finch-api/base_model.rb +1188 -0
- data/lib/finch-api/base_page.rb +40 -0
- data/lib/finch-api/client.rb +145 -0
- data/lib/finch-api/errors.rb +188 -0
- data/lib/finch-api/extern.rb +10 -0
- data/lib/finch-api/individuals_page.rb +98 -0
- data/lib/finch-api/models/access_token_create_params.rb +54 -0
- data/lib/finch-api/models/account_disconnect_params.rb +18 -0
- data/lib/finch-api/models/account_introspect_params.rb +18 -0
- data/lib/finch-api/models/account_update_event.rb +1978 -0
- data/lib/finch-api/models/base_webhook_event.rb +41 -0
- data/lib/finch-api/models/company_event.rb +49 -0
- data/lib/finch-api/models/connect/session_new_params.rb +203 -0
- data/lib/finch-api/models/connect/session_new_response.rb +29 -0
- data/lib/finch-api/models/connect/session_reauthenticate_params.rb +90 -0
- data/lib/finch-api/models/connect/session_reauthenticate_response.rb +29 -0
- data/lib/finch-api/models/connection_status_type.rb +40 -0
- data/lib/finch-api/models/create_access_token_response.rb +163 -0
- data/lib/finch-api/models/directory_event.rb +78 -0
- data/lib/finch-api/models/disconnect_response.rb +20 -0
- data/lib/finch-api/models/employment_event.rb +78 -0
- data/lib/finch-api/models/hris/benefit_contribution.rb +54 -0
- data/lib/finch-api/models/hris/benefit_create_params.rb +46 -0
- data/lib/finch-api/models/hris/benefit_features_and_operations.rb +199 -0
- data/lib/finch-api/models/hris/benefit_frequency.rb +33 -0
- data/lib/finch-api/models/hris/benefit_list_params.rb +20 -0
- data/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rb +20 -0
- data/lib/finch-api/models/hris/benefit_retrieve_params.rb +20 -0
- data/lib/finch-api/models/hris/benefit_type.rb +57 -0
- data/lib/finch-api/models/hris/benefit_update_params.rb +31 -0
- data/lib/finch-api/models/hris/benefits/enrolled_individual.rb +108 -0
- data/lib/finch-api/models/hris/benefits/individual_benefit.rb +127 -0
- data/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rb +268 -0
- data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rb +22 -0
- data/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rb +29 -0
- data/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rb +34 -0
- data/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rb +33 -0
- data/lib/finch-api/models/hris/benefits/unenrolled_individual.rb +77 -0
- data/lib/finch-api/models/hris/benefits_support.rb +106 -0
- data/lib/finch-api/models/hris/benfit_contribution.rb +9 -0
- data/lib/finch-api/models/hris/company.rb +290 -0
- data/lib/finch-api/models/hris/company_benefit.rb +40 -0
- data/lib/finch-api/models/hris/company_retrieve_params.rb +20 -0
- data/lib/finch-api/models/hris/create_company_benefits_response.rb +21 -0
- data/lib/finch-api/models/hris/directory_list_individuals_params.rb +42 -0
- data/lib/finch-api/models/hris/directory_list_params.rb +42 -0
- data/lib/finch-api/models/hris/document_list_params.rb +89 -0
- data/lib/finch-api/models/hris/document_list_response.rb +27 -0
- data/lib/finch-api/models/hris/document_response.rb +89 -0
- data/lib/finch-api/models/hris/document_retreive_params.rb +20 -0
- data/lib/finch-api/models/hris/document_retreive_response.rb +41 -0
- data/lib/finch-api/models/hris/employment_data.rb +380 -0
- data/lib/finch-api/models/hris/employment_data_response.rb +45 -0
- data/lib/finch-api/models/hris/employment_retrieve_many_params.rb +45 -0
- data/lib/finch-api/models/hris/individual.rb +290 -0
- data/lib/finch-api/models/hris/individual_in_directory.rb +117 -0
- data/lib/finch-api/models/hris/individual_response.rb +45 -0
- data/lib/finch-api/models/hris/individual_retrieve_many_params.rb +73 -0
- data/lib/finch-api/models/hris/pay_statement.rb +587 -0
- data/lib/finch-api/models/hris/pay_statement_response.rb +45 -0
- data/lib/finch-api/models/hris/pay_statement_response_body.rb +36 -0
- data/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rb +65 -0
- data/lib/finch-api/models/hris/payment.rb +174 -0
- data/lib/finch-api/models/hris/payment_list_params.rb +36 -0
- data/lib/finch-api/models/hris/support_per_benefit_type.rb +35 -0
- data/lib/finch-api/models/hris/supported_benefit.rb +166 -0
- data/lib/finch-api/models/hris/update_company_benefit_response.rb +21 -0
- data/lib/finch-api/models/hris/w42005.rb +188 -0
- data/lib/finch-api/models/hris/w42020.rb +180 -0
- data/lib/finch-api/models/income.rb +87 -0
- data/lib/finch-api/models/individual_event.rb +78 -0
- data/lib/finch-api/models/introspection.rb +342 -0
- data/lib/finch-api/models/job_completion_event.rb +90 -0
- data/lib/finch-api/models/jobs/automated_async_job.rb +162 -0
- data/lib/finch-api/models/jobs/automated_create_params.rb +70 -0
- data/lib/finch-api/models/jobs/automated_create_response.rb +43 -0
- data/lib/finch-api/models/jobs/automated_list_params.rb +42 -0
- data/lib/finch-api/models/jobs/automated_retrieve_params.rb +20 -0
- data/lib/finch-api/models/jobs/manual_async_job.rb +63 -0
- data/lib/finch-api/models/jobs/manual_retrieve_params.rb +20 -0
- data/lib/finch-api/models/location.rb +79 -0
- data/lib/finch-api/models/money.rb +30 -0
- data/lib/finch-api/models/operation_support.rb +42 -0
- data/lib/finch-api/models/operation_support_matrix.rb +81 -0
- data/lib/finch-api/models/paging.rb +35 -0
- data/lib/finch-api/models/pay_statement_event.rb +89 -0
- data/lib/finch-api/models/payment_event.rb +81 -0
- data/lib/finch-api/models/payroll/pay_group_list_params.rb +40 -0
- data/lib/finch-api/models/payroll/pay_group_list_response.rb +87 -0
- data/lib/finch-api/models/payroll/pay_group_retrieve_params.rb +20 -0
- data/lib/finch-api/models/payroll/pay_group_retrieve_response.rb +81 -0
- data/lib/finch-api/models/provider.rb +2039 -0
- data/lib/finch-api/models/provider_list_params.rb +18 -0
- data/lib/finch-api/models/request_forwarding_forward_params.rb +60 -0
- data/lib/finch-api/models/request_forwarding_forward_response.rb +97 -0
- data/lib/finch-api/models/sandbox/company_update_params.rb +294 -0
- data/lib/finch-api/models/sandbox/company_update_response.rb +276 -0
- data/lib/finch-api/models/sandbox/connection_create_params.rb +90 -0
- data/lib/finch-api/models/sandbox/connection_create_response.rb +113 -0
- data/lib/finch-api/models/sandbox/connections/account_create_params.rb +87 -0
- data/lib/finch-api/models/sandbox/connections/account_create_response.rb +93 -0
- data/lib/finch-api/models/sandbox/connections/account_update_params.rb +32 -0
- data/lib/finch-api/models/sandbox/connections/account_update_response.rb +91 -0
- data/lib/finch-api/models/sandbox/directory_create_params.rb +642 -0
- data/lib/finch-api/models/sandbox/directory_create_response.rb +9 -0
- data/lib/finch-api/models/sandbox/employment_update_params.rb +372 -0
- data/lib/finch-api/models/sandbox/employment_update_response.rb +378 -0
- data/lib/finch-api/models/sandbox/individual_update_params.rb +292 -0
- data/lib/finch-api/models/sandbox/individual_update_response.rb +300 -0
- data/lib/finch-api/models/sandbox/job_create_params.rb +49 -0
- data/lib/finch-api/models/sandbox/job_create_response.rb +43 -0
- data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rb +22 -0
- data/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rb +11 -0
- data/lib/finch-api/models/sandbox/jobs/configuration_update_params.rb +22 -0
- data/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rb +79 -0
- data/lib/finch-api/models/sandbox/payment_create_params.rb +646 -0
- data/lib/finch-api/models/sandbox/payment_create_response.rb +29 -0
- data/lib/finch-api/models/webhook_event.rb +48 -0
- data/lib/finch-api/page.rb +98 -0
- data/lib/finch-api/pooled_net_requester.rb +175 -0
- data/lib/finch-api/request_options.rb +115 -0
- data/lib/finch-api/resources/access_tokens.rb +40 -0
- data/lib/finch-api/resources/account.rb +47 -0
- data/lib/finch-api/resources/connect/sessions.rb +81 -0
- data/lib/finch-api/resources/connect.rb +17 -0
- data/lib/finch-api/resources/hris/benefits/individuals.rb +112 -0
- data/lib/finch-api/resources/hris/benefits.rb +125 -0
- data/lib/finch-api/resources/hris/company.rb +32 -0
- data/lib/finch-api/resources/hris/directory.rb +65 -0
- data/lib/finch-api/resources/hris/documents.rb +65 -0
- data/lib/finch-api/resources/hris/employments.rb +37 -0
- data/lib/finch-api/resources/hris/individuals.rb +39 -0
- data/lib/finch-api/resources/hris/pay_statements.rb +40 -0
- data/lib/finch-api/resources/hris/payments.rb +41 -0
- data/lib/finch-api/resources/hris.rb +45 -0
- data/lib/finch-api/resources/jobs/automated.rb +96 -0
- data/lib/finch-api/resources/jobs/manual.rb +35 -0
- data/lib/finch-api/resources/jobs.rb +21 -0
- data/lib/finch-api/resources/payroll/pay_groups.rb +58 -0
- data/lib/finch-api/resources/payroll.rb +17 -0
- data/lib/finch-api/resources/providers.rb +31 -0
- data/lib/finch-api/resources/request_forwarding.rb +52 -0
- data/lib/finch-api/resources/sandbox/company.rb +50 -0
- data/lib/finch-api/resources/sandbox/connections/accounts.rb +67 -0
- data/lib/finch-api/resources/sandbox/connections.rb +48 -0
- data/lib/finch-api/resources/sandbox/directory.rb +37 -0
- data/lib/finch-api/resources/sandbox/employment.rb +76 -0
- data/lib/finch-api/resources/sandbox/individual.rb +65 -0
- data/lib/finch-api/resources/sandbox/jobs/configuration.rb +57 -0
- data/lib/finch-api/resources/sandbox/jobs.rb +40 -0
- data/lib/finch-api/resources/sandbox/payment.rb +40 -0
- data/lib/finch-api/resources/sandbox.rb +41 -0
- data/lib/finch-api/resources/webhooks.rb +13 -0
- data/lib/finch-api/responses_page.rb +84 -0
- data/lib/finch-api/single_page.rb +82 -0
- data/lib/finch-api/util.rb +636 -0
- data/lib/finch-api/version.rb +5 -0
- data/lib/finch-api.rb +178 -0
- data/manifest.yaml +13 -0
- data/rbi/lib/finch-api/base_client.rbi +173 -0
- data/rbi/lib/finch-api/base_model.rbi +476 -0
- data/rbi/lib/finch-api/base_page.rbi +39 -0
- data/rbi/lib/finch-api/client.rbi +102 -0
- data/rbi/lib/finch-api/errors.rbi +146 -0
- data/rbi/lib/finch-api/extern.rbi +7 -0
- data/rbi/lib/finch-api/individuals_page.rbi +37 -0
- data/rbi/lib/finch-api/models/access_token_create_params.rbi +70 -0
- data/rbi/lib/finch-api/models/account_disconnect_params.rbi +18 -0
- data/rbi/lib/finch-api/models/account_introspect_params.rbi +18 -0
- data/rbi/lib/finch-api/models/account_update_event.rbi +2479 -0
- data/rbi/lib/finch-api/models/base_webhook_event.rbi +39 -0
- data/rbi/lib/finch-api/models/company_event.rbi +43 -0
- data/rbi/lib/finch-api/models/connect/session_new_params.rbi +203 -0
- data/rbi/lib/finch-api/models/connect/session_new_response.rbi +33 -0
- data/rbi/lib/finch-api/models/connect/session_reauthenticate_params.rbi +95 -0
- data/rbi/lib/finch-api/models/connect/session_reauthenticate_response.rbi +33 -0
- data/rbi/lib/finch-api/models/connection_status_type.rbi +20 -0
- data/rbi/lib/finch-api/models/create_access_token_response.rbi +159 -0
- data/rbi/lib/finch-api/models/directory_event.rbi +61 -0
- data/rbi/lib/finch-api/models/disconnect_response.rbi +23 -0
- data/rbi/lib/finch-api/models/employment_event.rbi +61 -0
- data/rbi/lib/finch-api/models/hris/benefit_contribution.rbi +44 -0
- data/rbi/lib/finch-api/models/hris/benefit_create_params.rbi +62 -0
- data/rbi/lib/finch-api/models/hris/benefit_features_and_operations.rbi +190 -0
- data/rbi/lib/finch-api/models/hris/benefit_frequency.rbi +19 -0
- data/rbi/lib/finch-api/models/hris/benefit_list_params.rbi +20 -0
- data/rbi/lib/finch-api/models/hris/benefit_list_supported_benefits_params.rbi +20 -0
- data/rbi/lib/finch-api/models/hris/benefit_retrieve_params.rbi +20 -0
- data/rbi/lib/finch-api/models/hris/benefit_type.rbi +35 -0
- data/rbi/lib/finch-api/models/hris/benefit_update_params.rbi +37 -0
- data/rbi/lib/finch-api/models/hris/benefits/enrolled_individual.rbi +115 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_benefit.rbi +153 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_enroll_many_params.rbi +281 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbi +22 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbi +35 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbi +36 -0
- data/rbi/lib/finch-api/models/hris/benefits/individual_unenroll_many_params.rbi +38 -0
- data/rbi/lib/finch-api/models/hris/benefits/unenrolled_individual.rbi +102 -0
- data/rbi/lib/finch-api/models/hris/benefits_support.rbi +196 -0
- data/rbi/lib/finch-api/models/hris/benfit_contribution.rbi +9 -0
- data/rbi/lib/finch-api/models/hris/company.rbi +338 -0
- data/rbi/lib/finch-api/models/hris/company_benefit.rbi +67 -0
- data/rbi/lib/finch-api/models/hris/company_retrieve_params.rbi +20 -0
- data/rbi/lib/finch-api/models/hris/create_company_benefits_response.rbi +25 -0
- data/rbi/lib/finch-api/models/hris/directory_list_individuals_params.rbi +43 -0
- data/rbi/lib/finch-api/models/hris/directory_list_params.rbi +43 -0
- data/rbi/lib/finch-api/models/hris/document_list_params.rbi +83 -0
- data/rbi/lib/finch-api/models/hris/document_list_response.rbi +42 -0
- data/rbi/lib/finch-api/models/hris/document_response.rbi +86 -0
- data/rbi/lib/finch-api/models/hris/document_retreive_params.rbi +20 -0
- data/rbi/lib/finch-api/models/hris/document_retreive_response.rbi +15 -0
- data/rbi/lib/finch-api/models/hris/employment_data.rbi +393 -0
- data/rbi/lib/finch-api/models/hris/employment_data_response.rbi +41 -0
- data/rbi/lib/finch-api/models/hris/employment_retrieve_many_params.rbi +63 -0
- data/rbi/lib/finch-api/models/hris/individual.rbi +281 -0
- data/rbi/lib/finch-api/models/hris/individual_in_directory.rbi +147 -0
- data/rbi/lib/finch-api/models/hris/individual_response.rbi +41 -0
- data/rbi/lib/finch-api/models/hris/individual_retrieve_many_params.rbi +94 -0
- data/rbi/lib/finch-api/models/hris/pay_statement.rbi +691 -0
- data/rbi/lib/finch-api/models/hris/pay_statement_response.rbi +47 -0
- data/rbi/lib/finch-api/models/hris/pay_statement_response_body.rbi +44 -0
- data/rbi/lib/finch-api/models/hris/pay_statement_retrieve_many_params.rbi +79 -0
- data/rbi/lib/finch-api/models/hris/payment.rbi +207 -0
- data/rbi/lib/finch-api/models/hris/payment_list_params.rbi +45 -0
- data/rbi/lib/finch-api/models/hris/support_per_benefit_type.rbi +47 -0
- data/rbi/lib/finch-api/models/hris/supported_benefit.rbi +155 -0
- data/rbi/lib/finch-api/models/hris/update_company_benefit_response.rbi +25 -0
- data/rbi/lib/finch-api/models/hris/w42005.rbi +150 -0
- data/rbi/lib/finch-api/models/hris/w42020.rbi +177 -0
- data/rbi/lib/finch-api/models/income.rbi +83 -0
- data/rbi/lib/finch-api/models/individual_event.rbi +61 -0
- data/rbi/lib/finch-api/models/introspection.rbi +350 -0
- data/rbi/lib/finch-api/models/job_completion_event.rbi +72 -0
- data/rbi/lib/finch-api/models/jobs/automated_async_job.rbi +174 -0
- data/rbi/lib/finch-api/models/jobs/automated_create_params.rbi +83 -0
- data/rbi/lib/finch-api/models/jobs/automated_create_response.rbi +64 -0
- data/rbi/lib/finch-api/models/jobs/automated_list_params.rbi +43 -0
- data/rbi/lib/finch-api/models/jobs/automated_retrieve_params.rbi +20 -0
- data/rbi/lib/finch-api/models/jobs/manual_async_job.rbi +54 -0
- data/rbi/lib/finch-api/models/jobs/manual_retrieve_params.rbi +20 -0
- data/rbi/lib/finch-api/models/location.rbi +114 -0
- data/rbi/lib/finch-api/models/money.rbi +31 -0
- data/rbi/lib/finch-api/models/operation_support.rbi +18 -0
- data/rbi/lib/finch-api/models/operation_support_matrix.rbi +47 -0
- data/rbi/lib/finch-api/models/paging.rbi +31 -0
- data/rbi/lib/finch-api/models/pay_statement_event.rbi +69 -0
- data/rbi/lib/finch-api/models/payment_event.rbi +69 -0
- data/rbi/lib/finch-api/models/payroll/pay_group_list_params.rbi +52 -0
- data/rbi/lib/finch-api/models/payroll/pay_group_list_response.rbi +59 -0
- data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_params.rbi +20 -0
- data/rbi/lib/finch-api/models/payroll/pay_group_retrieve_response.rbi +82 -0
- data/rbi/lib/finch-api/models/provider.rbi +2369 -0
- data/rbi/lib/finch-api/models/provider_list_params.rbi +18 -0
- data/rbi/lib/finch-api/models/request_forwarding_forward_params.rbi +80 -0
- data/rbi/lib/finch-api/models/request_forwarding_forward_response.rbi +138 -0
- data/rbi/lib/finch-api/models/sandbox/company_update_params.rbi +336 -0
- data/rbi/lib/finch-api/models/sandbox/company_update_response.rbi +330 -0
- data/rbi/lib/finch-api/models/sandbox/connection_create_params.rbi +91 -0
- data/rbi/lib/finch-api/models/sandbox/connection_create_response.rbi +129 -0
- data/rbi/lib/finch-api/models/sandbox/connections/account_create_params.rbi +93 -0
- data/rbi/lib/finch-api/models/sandbox/connections/account_create_response.rbi +120 -0
- data/rbi/lib/finch-api/models/sandbox/connections/account_update_params.rbi +36 -0
- data/rbi/lib/finch-api/models/sandbox/connections/account_update_response.rbi +109 -0
- data/rbi/lib/finch-api/models/sandbox/directory_create_params.rbi +629 -0
- data/rbi/lib/finch-api/models/sandbox/directory_create_response.rbi +9 -0
- data/rbi/lib/finch-api/models/sandbox/employment_update_params.rbi +377 -0
- data/rbi/lib/finch-api/models/sandbox/employment_update_response.rbi +382 -0
- data/rbi/lib/finch-api/models/sandbox/individual_update_params.rbi +276 -0
- data/rbi/lib/finch-api/models/sandbox/individual_update_response.rbi +283 -0
- data/rbi/lib/finch-api/models/sandbox/job_create_params.rbi +46 -0
- data/rbi/lib/finch-api/models/sandbox/job_create_response.rbi +64 -0
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbi +22 -0
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbi +11 -0
- data/rbi/lib/finch-api/models/sandbox/jobs/configuration_update_params.rbi +22 -0
- data/rbi/lib/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbi +58 -0
- data/rbi/lib/finch-api/models/sandbox/payment_create_params.rbi +876 -0
- data/rbi/lib/finch-api/models/sandbox/payment_create_response.rbi +33 -0
- data/rbi/lib/finch-api/models/webhook_event.rbi +18 -0
- data/rbi/lib/finch-api/page.rbi +37 -0
- data/rbi/lib/finch-api/pooled_net_requester.rbi +36 -0
- data/rbi/lib/finch-api/request_options.rbi +84 -0
- data/rbi/lib/finch-api/resources/access_tokens.rbi +24 -0
- data/rbi/lib/finch-api/resources/account.rbi +25 -0
- data/rbi/lib/finch-api/resources/connect/sessions.rbi +61 -0
- data/rbi/lib/finch-api/resources/connect.rbi +15 -0
- data/rbi/lib/finch-api/resources/hris/benefits/individuals.rbi +58 -0
- data/rbi/lib/finch-api/resources/hris/benefits.rbi +64 -0
- data/rbi/lib/finch-api/resources/hris/company.rbi +20 -0
- data/rbi/lib/finch-api/resources/hris/directory.rbi +35 -0
- data/rbi/lib/finch-api/resources/hris/documents.rbi +36 -0
- data/rbi/lib/finch-api/resources/hris/employments.rbi +23 -0
- data/rbi/lib/finch-api/resources/hris/individuals.rbi +24 -0
- data/rbi/lib/finch-api/resources/hris/pay_statements.rbi +23 -0
- data/rbi/lib/finch-api/resources/hris/payments.rbi +24 -0
- data/rbi/lib/finch-api/resources/hris.rbi +43 -0
- data/rbi/lib/finch-api/resources/jobs/automated.rbi +45 -0
- data/rbi/lib/finch-api/resources/jobs/manual.rbi +23 -0
- data/rbi/lib/finch-api/resources/jobs.rbi +19 -0
- data/rbi/lib/finch-api/resources/payroll/pay_groups.rbi +34 -0
- data/rbi/lib/finch-api/resources/payroll.rbi +15 -0
- data/rbi/lib/finch-api/resources/providers.rbi +18 -0
- data/rbi/lib/finch-api/resources/request_forwarding.rbi +25 -0
- data/rbi/lib/finch-api/resources/sandbox/company.rbi +40 -0
- data/rbi/lib/finch-api/resources/sandbox/connections/accounts.rbi +38 -0
- data/rbi/lib/finch-api/resources/sandbox/connections.rbi +36 -0
- data/rbi/lib/finch-api/resources/sandbox/directory.rbi +23 -0
- data/rbi/lib/finch-api/resources/sandbox/employment.rbi +62 -0
- data/rbi/lib/finch-api/resources/sandbox/individual.rbi +50 -0
- data/rbi/lib/finch-api/resources/sandbox/jobs/configuration.rbi +33 -0
- data/rbi/lib/finch-api/resources/sandbox/jobs.rbi +27 -0
- data/rbi/lib/finch-api/resources/sandbox/payment.rbi +25 -0
- data/rbi/lib/finch-api/resources/sandbox.rbi +39 -0
- data/rbi/lib/finch-api/resources/webhooks.rbi +11 -0
- data/rbi/lib/finch-api/responses_page.rbi +29 -0
- data/rbi/lib/finch-api/single_page.rbi +33 -0
- data/rbi/lib/finch-api/util.rbi +167 -0
- data/rbi/lib/finch-api/version.rbi +5 -0
- data/sig/finch-api/base_client.rbs +101 -0
- data/sig/finch-api/base_model.rbs +242 -0
- data/sig/finch-api/base_page.rbs +20 -0
- data/sig/finch-api/client.rbs +54 -0
- data/sig/finch-api/errors.rbs +99 -0
- data/sig/finch-api/extern.rbs +4 -0
- data/sig/finch-api/individuals_page.rbs +16 -0
- data/sig/finch-api/models/access_token_create_params.rbs +46 -0
- data/sig/finch-api/models/account_disconnect_params.rbs +19 -0
- data/sig/finch-api/models/account_introspect_params.rbs +19 -0
- data/sig/finch-api/models/account_update_event.rbs +1448 -0
- data/sig/finch-api/models/base_webhook_event.rbs +24 -0
- data/sig/finch-api/models/company_event.rbs +36 -0
- data/sig/finch-api/models/connect/session_new_params.rbs +129 -0
- data/sig/finch-api/models/connect/session_new_response.rbs +22 -0
- data/sig/finch-api/models/connect/session_reauthenticate_params.rbs +65 -0
- data/sig/finch-api/models/connect/session_reauthenticate_response.rbs +23 -0
- data/sig/finch-api/models/connection_status_type.rbs +22 -0
- data/sig/finch-api/models/create_access_token_response.rbs +80 -0
- data/sig/finch-api/models/directory_event.rbs +61 -0
- data/sig/finch-api/models/disconnect_response.rbs +17 -0
- data/sig/finch-api/models/employment_event.rbs +61 -0
- data/sig/finch-api/models/hris/benefit_contribution.rbs +38 -0
- data/sig/finch-api/models/hris/benefit_create_params.rbs +40 -0
- data/sig/finch-api/models/hris/benefit_features_and_operations.rbs +112 -0
- data/sig/finch-api/models/hris/benefit_frequency.rbs +15 -0
- data/sig/finch-api/models/hris/benefit_list_params.rbs +21 -0
- data/sig/finch-api/models/hris/benefit_list_supported_benefits_params.rbs +22 -0
- data/sig/finch-api/models/hris/benefit_retrieve_params.rbs +21 -0
- data/sig/finch-api/models/hris/benefit_type.rbs +50 -0
- data/sig/finch-api/models/hris/benefit_update_params.rbs +26 -0
- data/sig/finch-api/models/hris/benefits/enrolled_individual.rbs +75 -0
- data/sig/finch-api/models/hris/benefits/individual_benefit.rbs +91 -0
- data/sig/finch-api/models/hris/benefits/individual_enroll_many_params.rbs +203 -0
- data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_params.rbs +24 -0
- data/sig/finch-api/models/hris/benefits/individual_enrolled_ids_response.rbs +25 -0
- data/sig/finch-api/models/hris/benefits/individual_retrieve_many_benefits_params.rbs +31 -0
- data/sig/finch-api/models/hris/benefits/individual_unenroll_many_params.rbs +31 -0
- data/sig/finch-api/models/hris/benefits/unenrolled_individual.rbs +62 -0
- data/sig/finch-api/models/hris/benefits_support.rbs +68 -0
- data/sig/finch-api/models/hris/benfit_contribution.rbs +8 -0
- data/sig/finch-api/models/hris/company.rbs +195 -0
- data/sig/finch-api/models/hris/company_benefit.rbs +36 -0
- data/sig/finch-api/models/hris/company_retrieve_params.rbs +21 -0
- data/sig/finch-api/models/hris/create_company_benefits_response.rbs +20 -0
- data/sig/finch-api/models/hris/directory_list_individuals_params.rbs +34 -0
- data/sig/finch-api/models/hris/directory_list_params.rbs +34 -0
- data/sig/finch-api/models/hris/document_list_params.rbs +61 -0
- data/sig/finch-api/models/hris/document_list_response.rbs +29 -0
- data/sig/finch-api/models/hris/document_response.rbs +58 -0
- data/sig/finch-api/models/hris/document_retreive_params.rbs +21 -0
- data/sig/finch-api/models/hris/document_retreive_response.rbs +12 -0
- data/sig/finch-api/models/hris/employment_data.rbs +228 -0
- data/sig/finch-api/models/hris/employment_data_response.rbs +41 -0
- data/sig/finch-api/models/hris/employment_retrieve_many_params.rbs +45 -0
- data/sig/finch-api/models/hris/individual.rbs +176 -0
- data/sig/finch-api/models/hris/individual_in_directory.rbs +83 -0
- data/sig/finch-api/models/hris/individual_response.rbs +41 -0
- data/sig/finch-api/models/hris/individual_retrieve_many_params.rbs +72 -0
- data/sig/finch-api/models/hris/pay_statement.rbs +445 -0
- data/sig/finch-api/models/hris/pay_statement_response.rbs +41 -0
- data/sig/finch-api/models/hris/pay_statement_response_body.rbs +35 -0
- data/sig/finch-api/models/hris/pay_statement_retrieve_many_params.rbs +53 -0
- data/sig/finch-api/models/hris/payment.rbs +112 -0
- data/sig/finch-api/models/hris/payment_list_params.rbs +30 -0
- data/sig/finch-api/models/hris/support_per_benefit_type.rbs +37 -0
- data/sig/finch-api/models/hris/supported_benefit.rbs +84 -0
- data/sig/finch-api/models/hris/update_company_benefit_response.rbs +20 -0
- data/sig/finch-api/models/hris/w42005.rbs +111 -0
- data/sig/finch-api/models/hris/w42020.rbs +108 -0
- data/sig/finch-api/models/income.rbs +57 -0
- data/sig/finch-api/models/individual_event.rbs +61 -0
- data/sig/finch-api/models/introspection.rbs +204 -0
- data/sig/finch-api/models/job_completion_event.rbs +70 -0
- data/sig/finch-api/models/jobs/automated_async_job.rbs +102 -0
- data/sig/finch-api/models/jobs/automated_create_params.rbs +57 -0
- data/sig/finch-api/models/jobs/automated_create_response.rbs +37 -0
- data/sig/finch-api/models/jobs/automated_list_params.rbs +34 -0
- data/sig/finch-api/models/jobs/automated_retrieve_params.rbs +21 -0
- data/sig/finch-api/models/jobs/manual_async_job.rbs +43 -0
- data/sig/finch-api/models/jobs/manual_retrieve_params.rbs +21 -0
- data/sig/finch-api/models/location.rbs +48 -0
- data/sig/finch-api/models/money.rbs +19 -0
- data/sig/finch-api/models/operation_support.rbs +18 -0
- data/sig/finch-api/models/operation_support_matrix.rbs +50 -0
- data/sig/finch-api/models/paging.rbs +21 -0
- data/sig/finch-api/models/pay_statement_event.rbs +68 -0
- data/sig/finch-api/models/payment_event.rbs +59 -0
- data/sig/finch-api/models/payroll/pay_group_list_params.rbs +35 -0
- data/sig/finch-api/models/payroll/pay_group_list_response.rbs +66 -0
- data/sig/finch-api/models/payroll/pay_group_retrieve_params.rbs +21 -0
- data/sig/finch-api/models/payroll/pay_group_retrieve_response.rbs +62 -0
- data/sig/finch-api/models/provider.rbs +1455 -0
- data/sig/finch-api/models/provider_list_params.rbs +18 -0
- data/sig/finch-api/models/request_forwarding_forward_params.rbs +44 -0
- data/sig/finch-api/models/request_forwarding_forward_response.rbs +71 -0
- data/sig/finch-api/models/sandbox/company_update_params.rbs +197 -0
- data/sig/finch-api/models/sandbox/company_update_response.rbs +192 -0
- data/sig/finch-api/models/sandbox/connection_create_params.rbs +61 -0
- data/sig/finch-api/models/sandbox/connection_create_response.rbs +66 -0
- data/sig/finch-api/models/sandbox/connections/account_create_params.rbs +62 -0
- data/sig/finch-api/models/sandbox/connections/account_create_response.rbs +63 -0
- data/sig/finch-api/models/sandbox/connections/account_update_params.rbs +34 -0
- data/sig/finch-api/models/sandbox/connections/account_update_response.rbs +61 -0
- data/sig/finch-api/models/sandbox/directory_create_params.rbs +392 -0
- data/sig/finch-api/models/sandbox/directory_create_response.rbs +9 -0
- data/sig/finch-api/models/sandbox/employment_update_params.rbs +228 -0
- data/sig/finch-api/models/sandbox/employment_update_response.rbs +229 -0
- data/sig/finch-api/models/sandbox/individual_update_params.rbs +178 -0
- data/sig/finch-api/models/sandbox/individual_update_response.rbs +179 -0
- data/sig/finch-api/models/sandbox/job_create_params.rbs +36 -0
- data/sig/finch-api/models/sandbox/job_create_response.rbs +37 -0
- data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_params.rbs +23 -0
- data/sig/finch-api/models/sandbox/jobs/configuration_retrieve_response.rbs +12 -0
- data/sig/finch-api/models/sandbox/jobs/configuration_update_params.rbs +23 -0
- data/sig/finch-api/models/sandbox/jobs/sandbox_job_configuration.rbs +51 -0
- data/sig/finch-api/models/sandbox/payment_create_params.rbs +487 -0
- data/sig/finch-api/models/sandbox/payment_create_response.rbs +22 -0
- data/sig/finch-api/models/webhook_event.rbs +17 -0
- data/sig/finch-api/page.rbs +16 -0
- data/sig/finch-api/pooled_net_requester.rbs +28 -0
- data/sig/finch-api/request_options.rbs +40 -0
- data/sig/finch-api/resources/access_tokens.rbs +19 -0
- data/sig/finch-api/resources/account.rbs +25 -0
- data/sig/finch-api/resources/connect/sessions.rbs +40 -0
- data/sig/finch-api/resources/connect.rbs +9 -0
- data/sig/finch-api/resources/hris/benefits/individuals.rbs +58 -0
- data/sig/finch-api/resources/hris/benefits.rbs +64 -0
- data/sig/finch-api/resources/hris/company.rbs +18 -0
- data/sig/finch-api/resources/hris/directory.rbs +31 -0
- data/sig/finch-api/resources/hris/documents.rbs +33 -0
- data/sig/finch-api/resources/hris/employments.rbs +19 -0
- data/sig/finch-api/resources/hris/individuals.rbs +20 -0
- data/sig/finch-api/resources/hris/pay_statements.rbs +19 -0
- data/sig/finch-api/resources/hris/payments.rbs +20 -0
- data/sig/finch-api/resources/hris.rbs +23 -0
- data/sig/finch-api/resources/jobs/automated.rbs +42 -0
- data/sig/finch-api/resources/jobs/manual.rbs +20 -0
- data/sig/finch-api/resources/jobs.rbs +11 -0
- data/sig/finch-api/resources/payroll/pay_groups.rbs +31 -0
- data/sig/finch-api/resources/payroll.rbs +9 -0
- data/sig/finch-api/resources/providers.rbs +15 -0
- data/sig/finch-api/resources/request_forwarding.rbs +21 -0
- data/sig/finch-api/resources/sandbox/company.rbs +26 -0
- data/sig/finch-api/resources/sandbox/connections/accounts.rbs +34 -0
- data/sig/finch-api/resources/sandbox/connections.rbs +24 -0
- data/sig/finch-api/resources/sandbox/directory.rbs +19 -0
- data/sig/finch-api/resources/sandbox/employment.rbs +38 -0
- data/sig/finch-api/resources/sandbox/individual.rbs +32 -0
- data/sig/finch-api/resources/sandbox/jobs/configuration.rbs +31 -0
- data/sig/finch-api/resources/sandbox/jobs.rbs +21 -0
- data/sig/finch-api/resources/sandbox/payment.rbs +21 -0
- data/sig/finch-api/resources/sandbox.rbs +21 -0
- data/sig/finch-api/resources/webhooks.rbs +7 -0
- data/sig/finch-api/responses_page.rbs +14 -0
- data/sig/finch-api/single_page.rbs +18 -0
- data/sig/finch-api/util.rbs +109 -0
- data/sig/finch-api/version.rbs +3 -0
- metadata +536 -0
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
# @private
|
5
|
+
#
|
6
|
+
# @abstract
|
7
|
+
#
|
8
|
+
module BasePage
|
9
|
+
# @return [Boolean]
|
10
|
+
#
|
11
|
+
def next_page? = (raise NotImplementedError)
|
12
|
+
|
13
|
+
# @raise [FinchAPI::APIError]
|
14
|
+
# @return [FinchAPI::BasePage]
|
15
|
+
#
|
16
|
+
def next_page = (raise NotImplementedError)
|
17
|
+
|
18
|
+
# @param blk [Proc]
|
19
|
+
#
|
20
|
+
# @return [void]
|
21
|
+
#
|
22
|
+
def auto_paging_each(&) = (raise NotImplementedError)
|
23
|
+
|
24
|
+
# @return [Enumerable]
|
25
|
+
#
|
26
|
+
def to_enum = super(:auto_paging_each)
|
27
|
+
|
28
|
+
alias_method :enum_for, :to_enum
|
29
|
+
|
30
|
+
# @!parse
|
31
|
+
# # @private
|
32
|
+
# #
|
33
|
+
# # @param client [FinchAPI::BaseClient]
|
34
|
+
# # @param req [Hash{Symbol=>Object}]
|
35
|
+
# # @param headers [Hash{String=>String}, Net::HTTPHeader]
|
36
|
+
# # @param unwrapped [Object]
|
37
|
+
# #
|
38
|
+
# def initialize(client:, req:, headers:, unwrapped:); end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
class Client < FinchAPI::BaseClient
|
5
|
+
# Default max number of retries to attempt after a failed retryable request.
|
6
|
+
DEFAULT_MAX_RETRIES = 2
|
7
|
+
|
8
|
+
# Default per-request timeout.
|
9
|
+
DEFAULT_TIMEOUT_IN_SECONDS = 60.0
|
10
|
+
|
11
|
+
# Default initial retry delay in seconds.
|
12
|
+
# Overall delay is calculated using exponential backoff + jitter.
|
13
|
+
DEFAULT_INITIAL_RETRY_DELAY = 0.5
|
14
|
+
|
15
|
+
# Default max retry delay in seconds.
|
16
|
+
DEFAULT_MAX_RETRY_DELAY = 8.0
|
17
|
+
|
18
|
+
# @return [String, nil]
|
19
|
+
attr_reader :access_token
|
20
|
+
|
21
|
+
# @return [String, nil]
|
22
|
+
attr_reader :client_id
|
23
|
+
|
24
|
+
# @return [String, nil]
|
25
|
+
attr_reader :client_secret
|
26
|
+
|
27
|
+
# @return [FinchAPI::Resources::AccessTokens]
|
28
|
+
attr_reader :access_tokens
|
29
|
+
|
30
|
+
# @return [FinchAPI::Resources::HRIS]
|
31
|
+
attr_reader :hris
|
32
|
+
|
33
|
+
# @return [FinchAPI::Resources::Providers]
|
34
|
+
attr_reader :providers
|
35
|
+
|
36
|
+
# @return [FinchAPI::Resources::Account]
|
37
|
+
attr_reader :account
|
38
|
+
|
39
|
+
# @return [FinchAPI::Resources::Webhooks]
|
40
|
+
attr_reader :webhooks
|
41
|
+
|
42
|
+
# @return [FinchAPI::Resources::RequestForwarding]
|
43
|
+
attr_reader :request_forwarding
|
44
|
+
|
45
|
+
# @return [FinchAPI::Resources::Jobs]
|
46
|
+
attr_reader :jobs
|
47
|
+
|
48
|
+
# @return [FinchAPI::Resources::Sandbox]
|
49
|
+
attr_reader :sandbox
|
50
|
+
|
51
|
+
# @return [FinchAPI::Resources::Payroll]
|
52
|
+
attr_reader :payroll
|
53
|
+
|
54
|
+
# @return [FinchAPI::Resources::Connect]
|
55
|
+
attr_reader :connect
|
56
|
+
|
57
|
+
# @private
|
58
|
+
#
|
59
|
+
# @return [Hash{String=>String}]
|
60
|
+
#
|
61
|
+
private def auth_headers
|
62
|
+
{**bearer_auth, **basic_auth}
|
63
|
+
end
|
64
|
+
|
65
|
+
# @private
|
66
|
+
#
|
67
|
+
# @return [Hash{String=>String}]
|
68
|
+
#
|
69
|
+
private def bearer_auth
|
70
|
+
return {} if @access_token.nil?
|
71
|
+
|
72
|
+
{"authorization" => "Bearer #{@access_token}"}
|
73
|
+
end
|
74
|
+
|
75
|
+
# @private
|
76
|
+
#
|
77
|
+
# @return [Hash{String=>String}]
|
78
|
+
#
|
79
|
+
private def basic_auth
|
80
|
+
return {} if @client_id.nil? || @client_secret.nil?
|
81
|
+
|
82
|
+
base64_credentials = ["#{@client_id}:#{@client_secret}"].pack("m0")
|
83
|
+
{"authorization" => "Basic #{base64_credentials}"}
|
84
|
+
end
|
85
|
+
|
86
|
+
# Creates and returns a new client for interacting with the API.
|
87
|
+
#
|
88
|
+
# @param base_url [String, nil] Override the default base URL for the API, e.g., `"https://api.example.com/v2/"`
|
89
|
+
#
|
90
|
+
# @param access_token [String, nil]
|
91
|
+
#
|
92
|
+
# @param client_id [String, nil] Defaults to `ENV["FINCH_CLIENT_ID"]`
|
93
|
+
#
|
94
|
+
# @param client_secret [String, nil] Defaults to `ENV["FINCH_CLIENT_SECRET"]`
|
95
|
+
#
|
96
|
+
# @param max_retries [Integer] Max number of retries to attempt after a failed retryable request.
|
97
|
+
#
|
98
|
+
# @param timeout [Float]
|
99
|
+
#
|
100
|
+
# @param initial_retry_delay [Float]
|
101
|
+
#
|
102
|
+
# @param max_retry_delay [Float]
|
103
|
+
#
|
104
|
+
def initialize(
|
105
|
+
base_url: nil,
|
106
|
+
access_token: nil,
|
107
|
+
client_id: ENV["FINCH_CLIENT_ID"],
|
108
|
+
client_secret: ENV["FINCH_CLIENT_SECRET"],
|
109
|
+
max_retries: DEFAULT_MAX_RETRIES,
|
110
|
+
timeout: DEFAULT_TIMEOUT_IN_SECONDS,
|
111
|
+
initial_retry_delay: DEFAULT_INITIAL_RETRY_DELAY,
|
112
|
+
max_retry_delay: DEFAULT_MAX_RETRY_DELAY
|
113
|
+
)
|
114
|
+
base_url ||= "https://api.tryfinch.com"
|
115
|
+
|
116
|
+
headers = {
|
117
|
+
"finch-api-version" => "2020-09-17"
|
118
|
+
}
|
119
|
+
|
120
|
+
@access_token = access_token&.to_s
|
121
|
+
@client_id = client_id&.to_s
|
122
|
+
@client_secret = client_secret&.to_s
|
123
|
+
|
124
|
+
super(
|
125
|
+
base_url: base_url,
|
126
|
+
timeout: timeout,
|
127
|
+
max_retries: max_retries,
|
128
|
+
initial_retry_delay: initial_retry_delay,
|
129
|
+
max_retry_delay: max_retry_delay,
|
130
|
+
headers: headers
|
131
|
+
)
|
132
|
+
|
133
|
+
@access_tokens = FinchAPI::Resources::AccessTokens.new(client: self)
|
134
|
+
@hris = FinchAPI::Resources::HRIS.new(client: self)
|
135
|
+
@providers = FinchAPI::Resources::Providers.new(client: self)
|
136
|
+
@account = FinchAPI::Resources::Account.new(client: self)
|
137
|
+
@webhooks = FinchAPI::Resources::Webhooks.new(client: self)
|
138
|
+
@request_forwarding = FinchAPI::Resources::RequestForwarding.new(client: self)
|
139
|
+
@jobs = FinchAPI::Resources::Jobs.new(client: self)
|
140
|
+
@sandbox = FinchAPI::Resources::Sandbox.new(client: self)
|
141
|
+
@payroll = FinchAPI::Resources::Payroll.new(client: self)
|
142
|
+
@connect = FinchAPI::Resources::Connect.new(client: self)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
@@ -0,0 +1,188 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
class Error < StandardError
|
5
|
+
# @!parse
|
6
|
+
# # @return [StandardError, nil]
|
7
|
+
# attr_reader :cause
|
8
|
+
end
|
9
|
+
|
10
|
+
class ConversionError < FinchAPI::Error
|
11
|
+
end
|
12
|
+
|
13
|
+
class APIError < FinchAPI::Error
|
14
|
+
# @return [URI::Generic]
|
15
|
+
attr_reader :url
|
16
|
+
|
17
|
+
# @return [Integer, nil]
|
18
|
+
attr_reader :status
|
19
|
+
|
20
|
+
# @return [Object, nil]
|
21
|
+
attr_reader :body
|
22
|
+
|
23
|
+
# @private
|
24
|
+
#
|
25
|
+
# @param url [URI::Generic]
|
26
|
+
# @param status [Integer, nil]
|
27
|
+
# @param body [Object, nil]
|
28
|
+
# @param request [nil]
|
29
|
+
# @param response [nil]
|
30
|
+
# @param message [String, nil]
|
31
|
+
#
|
32
|
+
def initialize(url:, status: nil, body: nil, request: nil, response: nil, message: nil)
|
33
|
+
@url = url
|
34
|
+
@status = status
|
35
|
+
@body = body
|
36
|
+
@request = request
|
37
|
+
@response = response
|
38
|
+
super(message)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
class APIConnectionError < FinchAPI::APIError
|
43
|
+
# @!parse
|
44
|
+
# # @return [nil]
|
45
|
+
# attr_reader :status
|
46
|
+
|
47
|
+
# @!parse
|
48
|
+
# # @return [nil]
|
49
|
+
# attr_reader :body
|
50
|
+
|
51
|
+
# @private
|
52
|
+
#
|
53
|
+
# @param url [URI::Generic]
|
54
|
+
# @param status [nil]
|
55
|
+
# @param body [nil]
|
56
|
+
# @param request [nil]
|
57
|
+
# @param response [nil]
|
58
|
+
# @param message [String, nil]
|
59
|
+
#
|
60
|
+
def initialize(
|
61
|
+
url:,
|
62
|
+
status: nil,
|
63
|
+
body: nil,
|
64
|
+
request: nil,
|
65
|
+
response: nil,
|
66
|
+
message: "Connection error."
|
67
|
+
)
|
68
|
+
super
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class APITimeoutError < FinchAPI::APIConnectionError
|
73
|
+
# @private
|
74
|
+
#
|
75
|
+
# @param url [URI::Generic]
|
76
|
+
# @param status [nil]
|
77
|
+
# @param body [nil]
|
78
|
+
# @param request [nil]
|
79
|
+
# @param response [nil]
|
80
|
+
# @param message [String, nil]
|
81
|
+
#
|
82
|
+
def initialize(
|
83
|
+
url:,
|
84
|
+
status: nil,
|
85
|
+
body: nil,
|
86
|
+
request: nil,
|
87
|
+
response: nil,
|
88
|
+
message: "Request timed out."
|
89
|
+
)
|
90
|
+
super
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
class APIStatusError < FinchAPI::APIError
|
95
|
+
# @private
|
96
|
+
#
|
97
|
+
# @param url [URI::Generic]
|
98
|
+
# @param status [Integer]
|
99
|
+
# @param body [Object, nil]
|
100
|
+
# @param request [nil]
|
101
|
+
# @param response [nil]
|
102
|
+
# @param message [String, nil]
|
103
|
+
#
|
104
|
+
# @return [FinchAPI::APIStatusError]
|
105
|
+
#
|
106
|
+
def self.for(url:, status:, body:, request:, response:, message: nil)
|
107
|
+
kwargs = {url: url, status: status, body: body, request: request, response: response, message: message}
|
108
|
+
|
109
|
+
case status
|
110
|
+
in 400
|
111
|
+
FinchAPI::BadRequestError.new(**kwargs)
|
112
|
+
in 401
|
113
|
+
FinchAPI::AuthenticationError.new(**kwargs)
|
114
|
+
in 403
|
115
|
+
FinchAPI::PermissionDeniedError.new(**kwargs)
|
116
|
+
in 404
|
117
|
+
FinchAPI::NotFoundError.new(**kwargs)
|
118
|
+
in 409
|
119
|
+
FinchAPI::ConflictError.new(**kwargs)
|
120
|
+
in 422
|
121
|
+
FinchAPI::UnprocessableEntityError.new(**kwargs)
|
122
|
+
in 429
|
123
|
+
FinchAPI::RateLimitError.new(**kwargs)
|
124
|
+
in (500..)
|
125
|
+
FinchAPI::InternalServerError.new(**kwargs)
|
126
|
+
else
|
127
|
+
FinchAPI::APIStatusError.new(**kwargs)
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
# @!parse
|
132
|
+
# # @return [Integer]
|
133
|
+
# attr_reader :status
|
134
|
+
|
135
|
+
# @private
|
136
|
+
#
|
137
|
+
# @param url [URI::Generic]
|
138
|
+
# @param status [Integer]
|
139
|
+
# @param body [Object, nil]
|
140
|
+
# @param request [nil]
|
141
|
+
# @param response [nil]
|
142
|
+
# @param message [String, nil]
|
143
|
+
#
|
144
|
+
def initialize(url:, status:, body:, request:, response:, message: nil)
|
145
|
+
message ||= {url: url.to_s, status: status, body: body}
|
146
|
+
super(
|
147
|
+
url: url,
|
148
|
+
status: status,
|
149
|
+
body: body,
|
150
|
+
request: request,
|
151
|
+
response: response,
|
152
|
+
message: message&.to_s
|
153
|
+
)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
class BadRequestError < FinchAPI::APIStatusError
|
158
|
+
HTTP_STATUS = 400
|
159
|
+
end
|
160
|
+
|
161
|
+
class AuthenticationError < FinchAPI::APIStatusError
|
162
|
+
HTTP_STATUS = 401
|
163
|
+
end
|
164
|
+
|
165
|
+
class PermissionDeniedError < FinchAPI::APIStatusError
|
166
|
+
HTTP_STATUS = 403
|
167
|
+
end
|
168
|
+
|
169
|
+
class NotFoundError < FinchAPI::APIStatusError
|
170
|
+
HTTP_STATUS = 404
|
171
|
+
end
|
172
|
+
|
173
|
+
class ConflictError < FinchAPI::APIStatusError
|
174
|
+
HTTP_STATUS = 409
|
175
|
+
end
|
176
|
+
|
177
|
+
class UnprocessableEntityError < FinchAPI::APIStatusError
|
178
|
+
HTTP_STATUS = 422
|
179
|
+
end
|
180
|
+
|
181
|
+
class RateLimitError < FinchAPI::APIStatusError
|
182
|
+
HTTP_STATUS = 429
|
183
|
+
end
|
184
|
+
|
185
|
+
class InternalServerError < FinchAPI::APIStatusError
|
186
|
+
HTTP_STATUS = (500..)
|
187
|
+
end
|
188
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
# @example
|
5
|
+
# ```ruby
|
6
|
+
# if individuals_page.has_next?
|
7
|
+
# page = individuals_page.next_page
|
8
|
+
# end
|
9
|
+
# ```
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# ```ruby
|
13
|
+
# individuals_page.auto_paging_each do |item|
|
14
|
+
# # item ...
|
15
|
+
# end
|
16
|
+
# ```
|
17
|
+
#
|
18
|
+
# @example
|
19
|
+
# ```ruby
|
20
|
+
# items = individuals_page.to_enum.take(2)
|
21
|
+
#
|
22
|
+
# items => Array
|
23
|
+
# ```
|
24
|
+
class IndividualsPage
|
25
|
+
include FinchAPI::BasePage
|
26
|
+
|
27
|
+
# @return [Array<Object>]
|
28
|
+
attr_accessor :individuals
|
29
|
+
|
30
|
+
# @return [FinchAPI::Models::Paging]
|
31
|
+
attr_accessor :paging
|
32
|
+
|
33
|
+
# rubocop:disable Lint/UnusedMethodArgument
|
34
|
+
# @private
|
35
|
+
#
|
36
|
+
# @param client [FinchAPI::BaseClient]
|
37
|
+
# @param req [Hash{Symbol=>Object}]
|
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
|
44
|
+
model = req.fetch(:model)
|
45
|
+
|
46
|
+
case unwrapped
|
47
|
+
in {individuals: Array | nil => individuals}
|
48
|
+
@individuals = individuals&.map { model.coerce(_1) }
|
49
|
+
else
|
50
|
+
end
|
51
|
+
|
52
|
+
case unwrapped
|
53
|
+
in {paging: Hash | nil => paging}
|
54
|
+
@paging = FinchAPI::Models::Paging.coerce(paging)
|
55
|
+
else
|
56
|
+
end
|
57
|
+
end
|
58
|
+
# rubocop:enable Lint/UnusedMethodArgument
|
59
|
+
|
60
|
+
# @return [Boolean]
|
61
|
+
#
|
62
|
+
def next_page?
|
63
|
+
paging&.offset.to_i + individuals.size < paging&.count.to_i
|
64
|
+
end
|
65
|
+
|
66
|
+
# @raise [FinchAPI::HTTP::Error]
|
67
|
+
# @return [FinchAPI::IndividualsPage]
|
68
|
+
#
|
69
|
+
def next_page
|
70
|
+
unless next_page?
|
71
|
+
raise RuntimeError.new("No more pages available; please check #next_page? before calling #next_page")
|
72
|
+
end
|
73
|
+
|
74
|
+
req = FinchAPI::Util.deep_merge(@req, {query: {offset: paging&.offset.to_i + individuals.size}})
|
75
|
+
@client.request(req)
|
76
|
+
end
|
77
|
+
|
78
|
+
# @param blk [Proc]
|
79
|
+
#
|
80
|
+
def auto_paging_each(&blk)
|
81
|
+
unless block_given?
|
82
|
+
raise ArgumentError.new("A block must be given to #auto_paging_each")
|
83
|
+
end
|
84
|
+
page = self
|
85
|
+
loop do
|
86
|
+
page.individuals&.each { blk.call(_1) }
|
87
|
+
break unless page.next_page?
|
88
|
+
page = page.next_page
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# @return [String]
|
93
|
+
#
|
94
|
+
def inspect
|
95
|
+
"#<#{self.class}:0x#{object_id.to_s(16)} individuals=#{individuals.inspect} paging=#{paging.inspect}>"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
module Models
|
5
|
+
class AccessTokenCreateParams < FinchAPI::BaseModel
|
6
|
+
# @!parse
|
7
|
+
# extend FinchAPI::RequestParameters::Converter
|
8
|
+
include FinchAPI::RequestParameters
|
9
|
+
|
10
|
+
# @!attribute code
|
11
|
+
#
|
12
|
+
# @return [String]
|
13
|
+
required :code, String
|
14
|
+
|
15
|
+
# @!attribute [r] client_id
|
16
|
+
#
|
17
|
+
# @return [String, nil]
|
18
|
+
optional :client_id, String
|
19
|
+
|
20
|
+
# @!parse
|
21
|
+
# # @return [String]
|
22
|
+
# attr_writer :client_id
|
23
|
+
|
24
|
+
# @!attribute [r] client_secret
|
25
|
+
#
|
26
|
+
# @return [String, nil]
|
27
|
+
optional :client_secret, String
|
28
|
+
|
29
|
+
# @!parse
|
30
|
+
# # @return [String]
|
31
|
+
# attr_writer :client_secret
|
32
|
+
|
33
|
+
# @!attribute [r] redirect_uri
|
34
|
+
#
|
35
|
+
# @return [String, nil]
|
36
|
+
optional :redirect_uri, String
|
37
|
+
|
38
|
+
# @!parse
|
39
|
+
# # @return [String]
|
40
|
+
# attr_writer :redirect_uri
|
41
|
+
|
42
|
+
# @!parse
|
43
|
+
# # @param code [String]
|
44
|
+
# # @param client_id [String]
|
45
|
+
# # @param client_secret [String]
|
46
|
+
# # @param redirect_uri [String]
|
47
|
+
# # @param request_options [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
|
48
|
+
# #
|
49
|
+
# def initialize(code:, client_id: nil, client_secret: nil, redirect_uri: nil, request_options: {}, **) = super
|
50
|
+
|
51
|
+
# def initialize: (Hash | FinchAPI::BaseModel) -> void
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
module Models
|
5
|
+
class AccountDisconnectParams < FinchAPI::BaseModel
|
6
|
+
# @!parse
|
7
|
+
# extend FinchAPI::RequestParameters::Converter
|
8
|
+
include FinchAPI::RequestParameters
|
9
|
+
|
10
|
+
# @!parse
|
11
|
+
# # @param request_options [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
|
12
|
+
# #
|
13
|
+
# def initialize(request_options: {}, **) = super
|
14
|
+
|
15
|
+
# def initialize: (Hash | FinchAPI::BaseModel) -> void
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FinchAPI
|
4
|
+
module Models
|
5
|
+
class AccountIntrospectParams < FinchAPI::BaseModel
|
6
|
+
# @!parse
|
7
|
+
# extend FinchAPI::RequestParameters::Converter
|
8
|
+
include FinchAPI::RequestParameters
|
9
|
+
|
10
|
+
# @!parse
|
11
|
+
# # @param request_options [FinchAPI::RequestOptions, Hash{Symbol=>Object}]
|
12
|
+
# #
|
13
|
+
# def initialize(request_options: {}, **) = super
|
14
|
+
|
15
|
+
# def initialize: (Hash | FinchAPI::BaseModel) -> void
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|