uchill/chatnext/backend/apps/accounts/api/urls.py

94 lines
3.0 KiB
Python

# /home/ram/aparsoft/backend/apps/accounts/api/urls.py
"""
URL configuration for accounts API.
Provides router-based URL patterns for all viewsets in the accounts app.
"""
from django.urls import path, include
from rest_framework_simplejwt.views import TokenVerifyView
from rest_framework.routers import DefaultRouter
from .views import (
# Auth viewsets
CustomTokenObtainPairView,
LogoutView,
RegisterView,
# SocialAuthView, UserInfoView, PasswordChangeView,
CSRFTokenView,
EmailVerificationView,
PasswordResetView,
OrganizationRegisterView,
# CustomUser viewsets
CustomUserViewSet,
UserContactViewSet,
# Developer viewsets
DeveloperProfileViewSet,
# Client viewsets
ClientProfileViewSet,
# ProjectManager viewsets
ProjectManagerProfileViewSet,
# AccountManager viewsets
AccountManagerProfileViewSet,
# Team viewsets
TeamViewSet,
# Profile avatar views
ProfileAvatarView,
)
app_name = "accounts"
# Initialize the default router
router = DefaultRouter()
# Register CustomUser viewsets
router.register(r"users", CustomUserViewSet, basename="user")
router.register(r"user-contacts", UserContactViewSet, basename="user-contact")
# Register Developer viewsets
router.register(r"developers", DeveloperProfileViewSet, basename="developer")
# Register Client viewsets
router.register(r"clients", ClientProfileViewSet, basename="client")
# Register ProjectManager viewsets
router.register(
r"project-managers", ProjectManagerProfileViewSet, basename="project-manager"
)
# Register AccountManager viewsets
router.register(
r"account-managers", AccountManagerProfileViewSet, basename="account-manager"
)
# Register Team viewsets
router.register(r"teams", TeamViewSet, basename="team")
# URL patterns
urlpatterns = [
# Router generated URLs
path("", include(router.urls)),
# Authentication endpoints
path("auth/login/", CustomTokenObtainPairView.as_view(), name="token_obtain_pair"),
path("auth/verify/", TokenVerifyView.as_view(), name="token_verify"),
path("auth/logout/", LogoutView.as_view(), name="auth_logout"),
path("auth/register/", RegisterView.as_view(), name="auth_register"),
path(
"auth/organization-register/",
OrganizationRegisterView.as_view(),
name="auth_organization_register",
),
# path('auth/social/', SocialAuthView.as_view(), name='auth_social'),
# path('auth/me/', UserInfoView.as_view(), name='auth_user_info'),
# path('auth/password/change/', PasswordChangeView.as_view(),
# name='auth_password_change'),
path(
"auth/password/reset/", PasswordResetView.as_view(), name="auth_password_reset"
),
path(
"auth/email/verify/", EmailVerificationView.as_view(), name="auth_email_verify"
),
path("auth/csrf/", CSRFTokenView.as_view(), name="csrf_token"),
# Profile management endpoints
path("users/profile_image/", ProfileAvatarView.as_view(), name="profile_image"),
]