All checks were successful
continuous-integration/drone/push Build is passing
In production, this is the reverse proxy's responsibility
38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
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
|