mirror of
https://github.com/Zproger/Aurum.git
synced 2026-10-13 02:56:39 +07:00
fix: график крипты открывать за всё время, лучший/худший рост — по выбранному периоду
График во вкладке «Криптовалюта» теперь по умолчанию показывает всю историю, а не 30 дней — короткое окно у портфеля, растущего годами, часто попадало на локальную просадку и выглядело демотивирующе. Плитки «Лучший рост» и «Худшее падение» раньше всегда считались за 24 часа. Теперь они следуют за диапазоном, выбранным у графика (7д/30д/90д/всё время): для 7д/30д используются закэшированные данные CoinGecko, для «всё время» — метрика за 1 год (дальше бесплатный тариф CoinGecko историю не отдаёт), а для 90д — отдельный запрос по каждой монете, который выполняется только когда пользователь реально выбрал этот период.
This commit is contained in:
@@ -6,6 +6,7 @@ from app.schemas.crypto import (
|
||||
CryptoHistoryResponse,
|
||||
CryptoHoldingCreate,
|
||||
CryptoHoldingRead,
|
||||
CryptoPerformanceResponse,
|
||||
CryptoPortfolioCreate,
|
||||
CryptoPortfolioRead,
|
||||
CryptoPortfolioUpdate,
|
||||
@@ -22,6 +23,7 @@ from app.services.crypto_service import (
|
||||
create_portfolio,
|
||||
delete_portfolio,
|
||||
delete_transaction,
|
||||
get_90d_performance,
|
||||
get_crypto_history,
|
||||
list_portfolios,
|
||||
list_transactions,
|
||||
@@ -130,3 +132,13 @@ async def read_crypto_history(
|
||||
session: AsyncSession = Depends(get_session),
|
||||
) -> CryptoHistoryResponse:
|
||||
return await get_crypto_history(session, range, portfolio_id)
|
||||
|
||||
|
||||
@router.get("/performance/90d", response_model=CryptoPerformanceResponse)
|
||||
async def read_90d_performance(
|
||||
portfolio_id: int | None = None, session: AsyncSession = Depends(get_session)
|
||||
) -> CryptoPerformanceResponse:
|
||||
"""Backs the Best/Worst Performer stat only while the 90d range is
|
||||
selected — see get_90d_performance's docstring for why this is a
|
||||
separate on-demand call instead of a cached field like 7d/30d/1y."""
|
||||
return await get_90d_performance(session, portfolio_id)
|
||||
|
||||
Reference in New Issue
Block a user