mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
* Add data enrichment * Make data enrichment optional for self-hosters * Add categories to data enrichment * Only update category and merchant if nil * Fix name overrides * Lint fixes
37 lines
852 B
Ruby
37 lines
852 B
Ruby
# `Providable` serves as an extension point for integrating multiple providers.
|
|
# For an example of a multi-provider, multi-concept implementation,
|
|
# see: https://github.com/maybe-finance/maybe/pull/561
|
|
|
|
module Providable
|
|
extend ActiveSupport::Concern
|
|
|
|
class_methods do
|
|
def security_prices_provider
|
|
synth_provider
|
|
end
|
|
|
|
def security_info_provider
|
|
synth_provider
|
|
end
|
|
|
|
def exchange_rates_provider
|
|
synth_provider
|
|
end
|
|
|
|
def git_repository_provider
|
|
Provider::Github.new
|
|
end
|
|
|
|
def synth_provider
|
|
@synth_provider ||= begin
|
|
api_key = self_hosted? ? Setting.synth_api_key : ENV["SYNTH_API_KEY"]
|
|
api_key.present? ? Provider::Synth.new(api_key) : nil
|
|
end
|
|
end
|
|
|
|
private
|
|
def self_hosted?
|
|
Rails.application.config.app_mode.self_hosted?
|
|
end
|
|
end
|
|
end
|