class Api::BtcpayController < Api::BaseController before_action :require_feature_enabled before_action :set_cors_access_control_headers def onchain_btc_balance balance = BtcpayManager::FetchOnchainWalletBalance.call render json: balance rescue => error Rails.logger.warn "Failed to fetch BTC wallet balance: #{error.message}" render json: { error: 'Failed to fetch wallet balance' }, status: 500 end def lightning_btc_balance balance = BtcpayManager::FetchLightningWalletBalance.call render json: balance rescue => error Rails.logger.warn "Failed to fetch BTC lightning balance: #{error.message}" render json: { error: 'Failed to fetch wallet balance' }, status: 500 end private def require_feature_enabled unless Setting.btcpay_publish_wallet_balances http_status :not_found and return end end def set_cors_access_control_headers return unless Rails.env.development? headers['Access-Control-Allow-Origin'] = "*" headers['Access-Control-Allow-Headers'] = "*" headers['Access-Control-Allow-Methods'] = "GET" end end