Module: Voltaria
- Defined in:
- lib/voltaria/client.rb,
lib/voltaria/version.rb,
lib/voltaria/environment.rb,
lib/voltaria/loans/client.rb,
lib/voltaria/clients/client.rb,
lib/voltaria/prefix_routing.rb,
lib/voltaria/sandbox/client.rb,
lib/voltaria/accounts/client.rb,
lib/voltaria/partners/client.rb,
lib/voltaria/webhooks/client.rb,
lib/voltaria/documents/client.rb,
lib/voltaria/drawdowns/client.rb,
lib/voltaria/errors/api_error.rb,
lib/voltaria/investors/client.rb,
lib/voltaria/repayments/client.rb,
lib/voltaria/errors/client_error.rb,
lib/voltaria/errors/server_error.rb,
lib/voltaria/installments/client.rb,
lib/voltaria/internal/types/enum.rb,
lib/voltaria/internal/types/hash.rb,
lib/voltaria/internal/types/type.rb,
lib/voltaria/types/currency_enum.rb,
lib/voltaria/types/role_response.rb,
lib/voltaria/errors/timeout_error.rb,
lib/voltaria/internal/types/array.rb,
lib/voltaria/internal/types/model.rb,
lib/voltaria/internal/types/union.rb,
lib/voltaria/internal/types/utils.rb,
lib/voltaria/errors/redirect_error.rb,
lib/voltaria/errors/response_error.rb,
lib/voltaria/internal/json/request.rb,
lib/voltaria/types/account_address.rb,
lib/voltaria/types/client_response.rb,
lib/voltaria/types/kyc_status_enum.rb,
lib/voltaria/types/waiver_response.rb,
lib/voltaria/internal/types/boolean.rb,
lib/voltaria/internal/types/unknown.rb,
lib/voltaria/types/bulk_loan_result.rb,
lib/voltaria/types/client_base_info.rb,
lib/voltaria/types/client_type_enum.rb,
lib/voltaria/types/loan_status_enum.rb,
lib/voltaria/types/validation_error.rb,
lib/voltaria/types/available_funding.rb,
lib/voltaria/types/document_response.rb,
lib/voltaria/types/drawdown_response.rb,
lib/voltaria/types/jurisdiction_enum.rb,
lib/voltaria/internal/http/raw_client.rb,
lib/voltaria/types/client_status_enum.rb,
lib/voltaria/types/repayment_response.rb,
lib/voltaria/types/waiver_status_enum.rb,
lib/voltaria/types/waterfall_response.rb,
lib/voltaria/types/account_status_enum.rb,
lib/voltaria/types/checklist_type_enum.rb,
lib/voltaria/types/currency_field_spec.rb,
lib/voltaria/types/webhook_status_enum.rb,
lib/voltaria/internal/errors/type_error.rb,
lib/voltaria/internal/http/base_request.rb,
lib/voltaria/internal/json/serializable.rb,
lib/voltaria/internal/types/model/field.rb,
lib/voltaria/types/client_data_response.rb,
lib/voltaria/types/client_user_response.rb,
lib/voltaria/types/drawdown_status_enum.rb,
lib/voltaria/types/installment_response.rb,
lib/voltaria/types/webhook_log_response.rb,
lib/voltaria/types/bulk_loan_item_result.rb,
lib/voltaria/types/bulk_loan_task_status.rb,
lib/voltaria/types/bulk_repayment_result.rb,
lib/voltaria/types/client_limit_response.rb,
lib/voltaria/types/http_validation_error.rb,
lib/voltaria/types/partner_data_response.rb,
lib/voltaria/types/waterfall_status_enum.rb,
lib/voltaria/types/bulk_loan_item_payload.rb,
lib/voltaria/types/limit_request_response.rb,
lib/voltaria/types/loan_investor_response.rb,
lib/voltaria/types/bulk_loan_task_response.rb,
lib/voltaria/types/client_account_response.rb,
lib/voltaria/types/client_user_status_enum.rb,
lib/voltaria/types/installment_status_enum.rb,
lib/voltaria/types/webhook_event_type_enum.rb,
lib/voltaria/loans/types/list_loans_request.rb,
lib/voltaria/types/account_holder_type_enum.rb,
lib/voltaria/types/client_investor_response.rb,
lib/voltaria/types/loan_payment_status_enum.rb,
lib/voltaria/types/payment_promise_response.rb,
lib/voltaria/loans/types/delete_loan_request.rb,
lib/voltaria/loans/types/loan_create_payload.rb,
lib/voltaria/types/limit_request_status_enum.rb,
lib/voltaria/types/loan_installment_response.rb,
lib/voltaria/types/validation_error_loc_item.rb,
lib/voltaria/internal/errors/constraint_error.rb,
lib/voltaria/internal/iterators/item_iterator.rb,
lib/voltaria/loans/types/loan_default_payload.rb,
lib/voltaria/types/bulk_repayment_item_result.rb,
lib/voltaria/types/bulk_repayment_task_status.rb,
lib/voltaria/sandbox/types/loan_update_sandbox.rb,
lib/voltaria/types/bulk_repayment_item_payload.rb,
lib/voltaria/types/drawdown_checklist_response.rb,
lib/voltaria/types/payment_promise_status_enum.rb,
lib/voltaria/clients/types/list_clients_request.rb,
lib/voltaria/loans/types/get_loan_by_id_request.rb,
lib/voltaria/sandbox/types/webhook_test_sandbox.rb,
lib/voltaria/types/bulk_repayment_task_response.rb,
lib/voltaria/clients/types/client_create_payload.rb,
lib/voltaria/clients/types/delete_client_request.rb,
lib/voltaria/sandbox/types/client_update_sandbox.rb,
lib/voltaria/types/bulk_loan_item_payload_amount.rb,
lib/voltaria/types/webhook_subscription_response.rb,
lib/voltaria/internal/multipart/multipart_encoder.rb,
lib/voltaria/internal/multipart/multipart_request.rb,
lib/voltaria/loans/types/bulk_loan_create_payload.rb,
lib/voltaria/types/loan_response_with_client_info.rb,
lib/voltaria/types/loan_installment_create_payload.rb,
lib/voltaria/types/loan_response_with_installments.rb,
lib/voltaria/webhooks/types/webhook_create_payload.rb,
lib/voltaria/webhooks/types/webhook_update_payload.rb,
lib/voltaria/clients/types/get_client_by_id_request.rb,
lib/voltaria/documents/types/list_documents_request.rb,
lib/voltaria/drawdowns/types/list_drawdowns_request.rb,
lib/voltaria/internal/multipart/multipart_form_data.rb,
lib/voltaria/loans/types/loan_create_payload_amount.rb,
lib/voltaria/clients/types/get_limit_request_request.rb,
lib/voltaria/clients/types/reject_onboarding_request.rb,
lib/voltaria/documents/types/delete_document_request.rb,
lib/voltaria/documents/types/document_create_payload.rb,
lib/voltaria/drawdowns/types/drawdown_create_payload.rb,
lib/voltaria/internal/iterators/cursor_item_iterator.rb,
lib/voltaria/internal/iterators/cursor_page_iterator.rb,
lib/voltaria/internal/iterators/offset_item_iterator.rb,
lib/voltaria/internal/iterators/offset_page_iterator.rb,
lib/voltaria/types/webhook_log_response_request_body.rb,
lib/voltaria/clients/types/approve_onboarding_request.rb,
lib/voltaria/clients/types/client_data_create_payload.rb,
lib/voltaria/clients/types/client_user_invite_request.rb,
lib/voltaria/loans/types/get_bulk_loan_status_request.rb,
lib/voltaria/types/bulk_repayment_item_payload_amount.rb,
lib/voltaria/types/checklist_summary_partner_response.rb,
lib/voltaria/types/paginated_response_client_response.rb,
lib/voltaria/types/paginated_response_waiver_response.rb,
lib/voltaria/webhooks/types/list_webhook_logs_request.rb,
lib/voltaria/accounts/types/get_client_account_request.rb,
lib/voltaria/clients/types/list_client_waivers_request.rb,
lib/voltaria/clients/types/list_limit_requests_request.rb,
lib/voltaria/investors/types/investor_get_loan_request.rb,
lib/voltaria/repayments/types/repayment_create_payload.rb,
lib/voltaria/sandbox/types/client_update_sandbox_limit.rb,
lib/voltaria/types/repayment_response_with_client_info.rb,
lib/voltaria/clients/types/limit_request_create_payload.rb,
lib/voltaria/documents/types/get_document_by_id_request.rb,
lib/voltaria/partners/types/partner_data_create_payload.rb,
lib/voltaria/types/paginated_response_document_response.rb,
lib/voltaria/types/paginated_response_drawdown_response.rb,
lib/voltaria/accounts/types/list_client_accounts_request.rb,
lib/voltaria/installments/types/installment_edit_payload.rb,
lib/voltaria/internal/multipart/multipart_form_data_part.rb,
lib/voltaria/investors/types/investor_get_client_request.rb,
lib/voltaria/investors/types/investor_list_loans_request.rb,
lib/voltaria/types/installment_response_with_client_info.rb,
lib/voltaria/types/paginated_response_waterfall_response.rb,
lib/voltaria/installments/types/list_installments_request.rb,
lib/voltaria/loans/types/loan_default_payload_sold_amount.rb,
lib/voltaria/repayments/types/list_repayment_logs_request.rb,
lib/voltaria/types/available_document_categories_response.rb,
lib/voltaria/types/loan_installment_create_payload_amount.rb,
lib/voltaria/clients/types/list_onboarding_clients_request.rb,
lib/voltaria/installments/types/delete_installment_request.rb,
lib/voltaria/installments/types/installment_create_payload.rb,
lib/voltaria/investors/types/investor_list_clients_request.rb,
lib/voltaria/types/paginated_response_webhook_log_response.rb,
lib/voltaria/drawdowns/types/drawdown_create_payload_amount.rb,
lib/voltaria/partners/types/list_partner_waterfalls_request.rb,
lib/voltaria/repayments/types/bulk_repayment_create_payload.rb,
lib/voltaria/types/paginated_response_limit_request_response.rb,
lib/voltaria/types/paginated_response_loan_investor_response.rb,
lib/voltaria/webhooks/types/get_webhook_subscription_request.rb,
lib/voltaria/drawdowns/types/list_drawdown_checklists_request.rb,
lib/voltaria/installments/types/get_installment_by_id_request.rb,
lib/voltaria/installments/types/list_payment_promises_request.rb,
lib/voltaria/investors/types/investor_get_installment_request.rb,
lib/voltaria/investors/types/investor_list_repayments_request.rb,
lib/voltaria/repayments/types/repayment_create_payload_amount.rb,
lib/voltaria/types/paginated_response_client_account_response.rb,
lib/voltaria/accounts/types/list_client_account_fields_request.rb,
lib/voltaria/installments/types/payment_promise_create_payload.rb,
lib/voltaria/types/paginated_response_client_investor_response.rb,
lib/voltaria/types/paginated_response_payment_promise_response.rb,
lib/voltaria/webhooks/types/list_webhook_subscriptions_request.rb,
lib/voltaria/installments/types/installment_edit_payload_amount.rb,
lib/voltaria/investors/types/investor_list_installments_request.rb,
lib/voltaria/repayments/types/get_bulk_repayment_status_request.rb,
lib/voltaria/webhooks/types/delete_webhook_subscription_request.rb,
lib/voltaria/accounts/types/partner_client_account_create_request.rb,
lib/voltaria/types/paginated_response_drawdown_checklist_response.rb,
lib/voltaria/clients/types/list_client_checklist_summaries_request.rb,
lib/voltaria/types/paginated_response_webhook_subscription_response.rb,
lib/voltaria/types/paginated_response_loan_response_with_client_info.rb,
lib/voltaria/installments/types/payment_promise_create_payload_amount.rb,
lib/voltaria/clients/types/limit_request_create_payload_requested_limit.rb,
lib/voltaria/accounts/types/partner_client_account_create_request_status.rb,
lib/voltaria/types/paginated_response_checklist_summary_partner_response.rb,
lib/voltaria/types/paginated_response_repayment_response_with_client_info.rb,
lib/voltaria/types/paginated_response_installment_response_with_client_info.rb
Defined Under Namespace
Modules: Accounts, Clients, Documents, Drawdowns, Errors, Installments, Internal, Investors, Loans, Partners, Repayments, Sandbox, Types, Webhooks Classes: Client, Environment, InvalidApiKeyError
Constant Summary collapse
- VERSION =
"2.34.7"- API_KEY_ENVIRONMENTS =
Prefix -> environment base URL mapping.
{ "live_" => Voltaria::Environment::PRODUCTION, "sandbox_" => Voltaria::Environment::SANDBOX }.freeze
Class Method Summary collapse
-
.new(api_key, environment: nil, base_url: nil) ⇒ Voltaria::Client
Construct a Voltaria::Client, resolving the base URL from the API key prefix unless an explicit environment / base_url is given.
-
.resolve_environment(api_key, environment: nil, base_url: nil) ⇒ String?
Resolve the base URL to use.
Class Method Details
.new(api_key, environment: nil, base_url: nil) ⇒ Voltaria::Client
Construct a Voltaria::Client, resolving the base URL from the API key prefix unless an explicit environment / base_url is given.
52 53 54 55 |
# File 'lib/voltaria/prefix_routing.rb', line 52 def new(api_key, environment: nil, base_url: nil, **) resolved = resolve_environment(api_key, environment: environment, base_url: base_url) Voltaria::Client.new(token: api_key, base_url: base_url || resolved, **) end |
.resolve_environment(api_key, environment: nil, base_url: nil) ⇒ String?
Resolve the base URL to use.
Mirrors the reference behavior exactly:
- explicit environment wins
- explicit base_url defers resolution to the caller (returns nil here)
- otherwise derive from the api_key prefix
- unknown / empty prefix raises InvalidApiKeyError
70 71 72 73 74 75 76 77 78 |
# File 'lib/voltaria/prefix_routing.rb', line 70 def resolve_environment(api_key, environment: nil, base_url: nil) return environment if environment return nil if base_url prefix = API_KEY_ENVIRONMENTS.keys.find { |p| api_key.to_s.start_with?(p) } raise InvalidApiKeyError unless prefix API_KEY_ENVIRONMENTS.fetch(prefix) end |