Stage 05.3 - order validation, error handling and journal logging

This commit is contained in:
2026-04-17 13:05:35 +03:00
parent b1b9beef78
commit 604a8c0069
13 changed files with 188 additions and 25 deletions

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/auto.py
from aiogram import F, Router
from aiogram.types import Message

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/home.py
from aiogram import F, Router
from aiogram.types import Message

View File

@@ -1,7 +1,9 @@
# app/src/telegram/handlers/journal.py
from __future__ import annotations
from aiogram import F, Router
from aiogram.types import Message, CallbackQuery
from aiogram.types import CallbackQuery, Message
from aiogram.utils.keyboard import InlineKeyboardBuilder
from src.trading.journal.service import JournalService
@@ -11,22 +13,25 @@ router = Router(name="journal")
PAGE_SIZE = 3
LEVEL_ICONS = {
"INFO": "",
"WARNING": "⚠️",
"ERROR": "",
"CRITICAL": "🚨",
}
def build_keyboard(page: int, total_pages: int):
kb = InlineKeyboardBuilder()
# кнопка "в начало"
if page > 1:
kb.button(text="⏮️", callback_data="journal:1")
# назад
if page > 1:
kb.button(text="⬅️", callback_data=f"journal:{page-1}")
# текущая страница
kb.button(text=f"{page}/{total_pages}", callback_data="noop")
# вперед
if page < total_pages:
kb.button(text="➡️", callback_data=f"journal:{page+1}")
@@ -37,17 +42,20 @@ def render(events, page, total_pages):
lines = ["<b>📒 Журнал</b>", "", "<b>Последние события</b>", ""]
for e in events:
level = str(e.get("level", "INFO")).upper()
icon = LEVEL_ICONS.get(level, "")
lines.extend(
[
f" <b>{e['event_type']}</b>",
f"• уровень: {e['level']}",
f"{icon} <b>{e['event_type']}</b>",
f"• уровень: {level}",
f"• время: {e['created_at']}",
f"• сообщение: {e['message']}",
"",
]
)
return "\n".join(lines)
return "\n".join(lines).rstrip()
@router.message(F.text == "📒 Журнал")

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/market.py
from __future__ import annotations
from aiogram import F, Router

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/portfolio.py
from __future__ import annotations
from aiogram import F, Router

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/start.py
from __future__ import annotations
from aiogram import F, Router

View File

@@ -1,3 +1,5 @@
# app/src/telegram/handlers/system.py
from __future__ import annotations
from aiogram import F, Router