1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 13:19:39 +02:00

Make provider errors more specific
Some checks failed
Publish Docker image / ci (push) Has been cancelled
Publish Docker image / Build docker image (push) Has been cancelled

This commit is contained in:
Zach Gollwitzer 2025-03-28 17:53:04 -04:00
parent 29f445d75e
commit dc17a0a298
3 changed files with 8 additions and 3 deletions

View file

@ -61,13 +61,12 @@ class Provider
# Override to set class-level error transformation for methods using `with_provider_response` # Override to set class-level error transformation for methods using `with_provider_response`
def default_error_transformer(error) def default_error_transformer(error)
if error.is_a?(Faraday::Error) if error.is_a?(Faraday::Error)
Error.new( self.class::Error.new(
error.message, error.message,
details: error.response&.dig(:body), details: error.response&.dig(:body),
provider: self.class.name
) )
else else
Error.new(error.message, provider: self.class.name) self.class::Error.new(error.message)
end end
end end

View file

@ -1,6 +1,9 @@
class Provider::Openai < Provider class Provider::Openai < Provider
include LlmProvider include LlmProvider
# Subclass so errors caught in this provider are raised as Provider::Openai::Error
Error = Class.new(Provider::Error)
MODELS = %w[gpt-4o] MODELS = %w[gpt-4o]
def initialize(access_token) def initialize(access_token)

View file

@ -1,6 +1,9 @@
class Provider::Synth < Provider class Provider::Synth < Provider
include ExchangeRateProvider, SecurityProvider include ExchangeRateProvider, SecurityProvider
# Subclass so errors caught in this provider are raised as Provider::Synth::Error
Error = Class.new(Provider::Error)
def initialize(api_key) def initialize(api_key)
@api_key = api_key @api_key = api_key
end end