Class: Exa::CLI::AccountResolver
- Inherits:
-
Object
- Object
- Exa::CLI::AccountResolver
- Defined in:
- lib/exa/cli/account_resolver.rb
Defined Under Namespace
Classes: MissingCredentialsError, Result, UnknownAccountError
Constant Summary collapse
- DEFAULT_BASE_URL =
"https://api.exa.ai"
Instance Method Summary collapse
-
#initialize(config_store:) ⇒ AccountResolver
constructor
A new instance of AccountResolver.
- #resolve(options:, env: ENV) ⇒ Object
Constructor Details
#initialize(config_store:) ⇒ AccountResolver
Returns a new instance of AccountResolver.
15 16 17 |
# File 'lib/exa/cli/account_resolver.rb', line 15 def initialize(config_store:) @config_store = config_store end |
Instance Method Details
#resolve(options:, env: ENV) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/exa/cli/account_resolver.rb', line 19 def resolve(options:, env: ENV) data = config_store.read account_name = [:account] || env["EXA_ACCOUNT"] || data["default"] account_data = fetch_account(data, account_name) if account_name api_key = [:api_key] || env["EXA_API_KEY"] || account_data&.dig("api_key") base_url = [:base_url] || env["EXA_BASE_URL"] || account_data&.dig("base_url") || DEFAULT_BASE_URL unless api_key raise MissingCredentialsError, "Missing API key. Provide --api-key, set EXA_API_KEY, or add an account via `exa accounts:add`." end Result.new(api_key: api_key, base_url: base_url, account: account_name) end |