
| Current Path : /var/www/bavspeed/api/backend/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/bavspeed/api/backend/urls.py |
from django.contrib import admin
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from rest_framework_simplejwt.views import TokenRefreshView
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
from django.conf import settings
from django.conf.urls.static import static
from core.views import (
UserViewSet,
CompanyViewSet,
EmployeeProfileViewSet,
PlanRetraiteViewSet,
UserMeView,
ContributionListView,
CompanyDetailView,
EmployeeDetailView,
UserRegistrationView,
PensionSimulationView,
CustomTokenObtainPairView,
)
schema_view = get_schema_view(
openapi.Info(
title="API Plateforme Retraite",
default_version='v1',
description="Documentation de l'API pour la plateforme de gestion des retraites",
contact=openapi.Contact(email="contact@retraite.com"),
),
public=True,
)
# ---------------- ROUTER ----------------
router = DefaultRouter()
router.register(r'users', UserViewSet)
router.register(r'companies', CompanyViewSet)
router.register(r'employees', EmployeeProfileViewSet, basename='employees')
router.register(r'plans', PlanRetraiteViewSet, basename='plans-retraite')
# ---------------- CompanyViewSet personnalisé pour GET/PATCH /company/
company_view = CompanyViewSet.as_view({
'get': 'retrieve',
'patch': 'partial_update',
})
# ---------------- URLPATTERNS ----------------
urlpatterns = [
# Django admin
path('admin/', admin.site.urls),
# Documentation Swagger / Redoc
path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
# Authentification & Tokens
path('api/auth/', include([
path('login/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
path('token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
path('register/', UserRegistrationView.as_view(), name='user-register'),
])),
# Utilisateur connecté
path('api/users/me/', UserMeView.as_view(), name='user-me'),
# CompanyViewSet → récupération et mise à jour des données entreprise
path('api/company/', company_view, name='company'),
# EMPLOYER - gestion entreprise et employés
path('api/employer/', include([
path('company/', CompanyDetailView.as_view(), name='company-detail'),
path('employees/', EmployeeDetailView.as_view(), name='employee-list'),
path('employees/<str:matricule>/', EmployeeDetailView.as_view(), name='employee-detail'),
])),
# EMPLOYEE - dashboard, pension et contributions
path('api/employee/', include([
path('simulate/', PensionSimulationView.as_view(), name='pension-simulation'),
path('contributions/', ContributionListView.as_view(), name='employee-contributions'),
])),
# Routes DRF automatiques
path('api/', include(router.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)