klg-asutk-app/app/api/regulations/update/route.ts
Yuriy a7da43be0e apply recommendations: security, get_db, exceptions, eslint, api-client
- session: set_tenant use bound param (SQL injection fix)
- health: text('SELECT 1'), REDIS_URL from config
- deps: re-export get_db from session, use settings.ENABLE_DEV_AUTH (default False)
- routes: all get_db from app.api.deps; conftest overrides deps.get_db
- main: register exception handlers from app.api.exceptions
- next.config: enable ESLint and TypeScript checks
- .eslintrc: drop @typescript-eslint/recommended; fix no-console (logger, ws-client, regulations)
- backend/.env.example added
- frontend: export apiFetch; dashboard, profile, settings, risks use api-client
- docs/ANALYSIS_AND_RECOMMENDATIONS.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-14 21:48:58 +03:00

45 lines
2.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

export const dynamic = "force-dynamic";
import { NextResponse } from 'next/server';
import { logInfo } from '@/lib/logger';
// Эндпоинт для обновления нормативных документов
// Должен вызываться автоматически раз в месяц через cron job или scheduled task
export async function POST(request: Request) {
try {
const { source } = await request.json().catch(() => ({}));
logInfo(`Начато обновление нормативных документов для источника: ${source || 'все'}`);
// В реальном приложении здесь будет:
// 1. Загрузка документов с официальных сайтов (ICAO, EASA, FAA, МАК, АРМАК)
// 2. Парсинг и извлечение актуальной информации
// 3. Сохранение в базу данных
// 4. Версионирование документов
const updateResults = {
timestamp: new Date().toISOString(),
sources: [
{ name: 'ICAO', status: 'updated', documents: 19 },
{ name: 'EASA', status: 'updated', documents: 15 },
{ name: 'FAA', status: 'updated', documents: 12 },
{ name: 'MAK', status: 'updated', documents: 8 },
{ name: 'ARMAC', status: 'updated', documents: 10 },
{ name: 'RUSSIAN_RULES', status: 'updated', documents: 25 },
{ name: 'AIR_CODE', status: 'updated', documents: 1 },
],
};
return NextResponse.json({
success: true,
message: 'Нормативные документы успешно обновлены',
results: updateResults,
});
} catch (error: any) {
console.error('Ошибка обновления нормативных документов:', error);
return NextResponse.json(
{ error: 'Ошибка при обновлении документов', message: error.message },
{ status: 500 }
);
}
}