mirror of
https://github.com/we-promise/sure
synced 2026-04-25 17:15:07 +02:00
* feat: add Binance support (Items, Accounts, Importers, Processor, and Sync) * refactor: deduplicate 'stablecoins' constant and push stale_rate filter to SQL --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
24 lines
920 B
Ruby
24 lines
920 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Resolves or creates a Security for a given Binance ticker.
|
|
# First attempts Security::Resolver; on failure, falls back to find_or_initialize_by
|
|
# and saves an offline security so syncs are not blocked by provider outages.
|
|
class BinanceAccount::SecurityResolver
|
|
EXCHANGE_MIC = "XBNC"
|
|
|
|
def self.resolve(ticker, symbol)
|
|
result = Security::Resolver.new(ticker).resolve
|
|
if result.nil?
|
|
Rails.logger.debug "BinanceAccount::SecurityResolver - primary resolver returned nil for #{ticker}"
|
|
end
|
|
result
|
|
rescue StandardError => e
|
|
Rails.logger.warn "BinanceAccount::SecurityResolver - resolver failed for #{ticker}: #{e.message}"
|
|
Security.find_or_initialize_by(ticker: ticker, exchange_operating_mic: EXCHANGE_MIC).tap do |sec|
|
|
sec.name = symbol if sec.name.blank?
|
|
sec.offline = true unless sec.offline
|
|
sec.save! if sec.changed?
|
|
end
|
|
end
|
|
end
|