Files
mostovik-backend/src/apps/parsers/urls.py
Aleksandr Meshchriakov 26d61f7181
All checks were successful
CI/CD Pipeline / Code Quality Checks (pull_request) Successful in 1m55s
CI/CD Pipeline / Run Tests (pull_request) Successful in 3m6s
CI/CD Pipeline / Run API Inventory E2E Tests (pull_request) Successful in 2m48s
CI/CD Pipeline / Telegram Notify Success (pull_request) Successful in 19s
feat: add parser source dashboard and scheduling
2026-04-28 01:08:51 +02:00

150 lines
5.1 KiB
Python
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.
"""
URL конфигурация для приложения парсеров.
Все эндпоинты только для чтения (GET, GET list).
"""
from apps.parsers.views import (
FinancialReportViewSet,
FNSReportUploadView,
GenericParserRecordListView,
IndustrialCertificateViewSet,
IndustrialProductViewSet,
InspectionViewSet,
ManufacturerViewSet,
ParserDashboardDataView,
ParserLoadLogExportView,
ParserLoadLogListView,
ParserLoadLogViewSet,
ParserRunView,
ParserScheduleDetailView,
ParserScheduleListCreateView,
ParserSourceListView,
ParserUploadView,
ParsingSettingsView,
ProcurementViewSet,
SourceCardDetailView,
SourceCardListView,
SourceCardRefreshView,
SourceTaskStatusListView,
)
from django.urls import include, path
from rest_framework.routers import DefaultRouter
app_name = "parsers"
# =============================================================================
# Минпромторг: /api/v1/minpromtorg/
# =============================================================================
minpromtorg_router = DefaultRouter()
minpromtorg_router.register(
r"certificates", IndustrialCertificateViewSet, basename="certificates"
)
minpromtorg_router.register(
r"manufacturers", ManufacturerViewSet, basename="manufacturers"
)
minpromtorg_router.register(
r"products", IndustrialProductViewSet, basename="industrial-products"
)
minpromtorg_urlpatterns = [
path("", include(minpromtorg_router.urls)),
]
# =============================================================================
# Единый реестр проверок: /api/v1/proverki/
# =============================================================================
proverki_router = DefaultRouter()
proverki_router.register(r"", InspectionViewSet, basename="inspections")
proverki_urlpatterns = [
path("", include(proverki_router.urls)),
]
# =============================================================================
# Государственные закупки: /api/v1/zakupki/
# =============================================================================
zakupki_router = DefaultRouter()
zakupki_router.register(r"", ProcurementViewSet, basename="procurements")
zakupki_urlpatterns = [
path("", include(zakupki_router.urls)),
]
# =============================================================================
# ФНС - Бухгалтерская отчетность: /api/v1/fns/
# =============================================================================
fns_router = DefaultRouter()
fns_router.register(r"reports", FinancialReportViewSet, basename="fns-reports")
fns_urlpatterns = [
path("upload/", FNSReportUploadView.as_view(), name="fns-upload"),
path("", include(fns_router.urls)),
]
# =============================================================================
# Parsing settings: /api/v1/parsing/
# =============================================================================
parsing_urlpatterns = [
path("settings/", ParsingSettingsView.as_view(), name="parsing-settings"),
]
# =============================================================================
# Frontend sources: /api/v1/sources/
# =============================================================================
sources_urlpatterns = [
path("", SourceCardListView.as_view(), name="source-cards-list"),
path("statuses/", SourceTaskStatusListView.as_view(), name="source-cards-statuses"),
path("<slug:slug>/", SourceCardDetailView.as_view(), name="source-cards-detail"),
path(
"<slug:slug>/refresh/",
SourceCardRefreshView.as_view(),
name="source-cards-refresh",
),
]
# =============================================================================
# Системные (логи, прокси): /api/v1/system/
# =============================================================================
system_router = DefaultRouter()
system_router.register(r"logs", ParserLoadLogViewSet, basename="parser-logs")
system_urlpatterns = [
path("logs/export/", ParserLoadLogExportView.as_view(), name="parser-logs-export"),
path("", include(system_router.urls)),
]
# =============================================================================
# Legacy urlpatterns (пусто, используется app_name)
# =============================================================================
urlpatterns = [
path("sources/", ParserSourceListView.as_view(), name="source-list"),
path("dashboard/", ParserDashboardDataView.as_view(), name="dashboard-data"),
path("run/<str:source_key>/", ParserRunView.as_view(), name="run-parser"),
path(
"upload/<str:source_key>/",
ParserUploadView.as_view(),
name="upload-parser-data",
),
path(
"schedules/",
ParserScheduleListCreateView.as_view(),
name="schedule-list",
),
path(
"schedules/<int:pk>/",
ParserScheduleDetailView.as_view(),
name="schedule-detail",
),
path("load-logs/", ParserLoadLogListView.as_view(), name="load-log-list"),
path("records/", GenericParserRecordListView.as_view(), name="generic-record-list"),
]