/
h0tnanny
/
IotPlatform
Обзор
Документация
Войти
/
h0tnanny
/
IotPlatform
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/api/controllers/LogController.ts
61 строка
2 KB
h0tnanny
Добавление функциональных требований
08 фев 2026, 23:02
08 фев 2026, 23:02
a8a23c5
Код
Авторство
О чём код?
import { Response } from 'express'; import { AuthRequest } from '../../middleware/auth'; import { LogService } from '../../services/LogService'; import { LogLevel, LogCategory } from '../../repositories/LogRepository'; export class LogController { private readonly logService: LogService; constructor() { this.logService = LogService.getInstance(); } /** * GET /admin/logs - Получить логи с фильтрацией */ getLogs = async (req: AuthRequest, res: Response): Promise<void> => { const { level, category, dateFrom, dateTo, userId, resourceType, resourceId, page, limit, } = req.query; const filters = { level: level as LogLevel | undefined, category: category as LogCategory | undefined, dateFrom: dateFrom ? new Date(dateFrom as string) : undefined, dateTo: dateTo ? new Date(dateTo as string) : undefined, userId: userId as string | undefined, resourceType: resourceType as string | undefined, resourceId: resourceId as string | undefined, page: page ? parseInt(page as string, 10) : 1, limit: limit ? parseInt(limit as string, 10) : 50, }; const result = await this.logService.getLogs(filters); res.json({ data: { logs: result.logs, total: result.total, page: filters.page, limit: filters.limit, totalPages: Math.ceil(result.total / filters.limit!), }, }); }; /** * GET /admin/logs/stats - Статистика логов */ getStats = async (_req: AuthRequest, res: Response): Promise<void> => { const stats = await this.logService.getStats(); res.json({ data: stats }); }; }