from django.urls import path, include from rest_framework.routers import SimpleRouter from apps.account import views from apps.geolocation_package.views.geolocation import IPGeolocationAPIView, ReverseGeolocationAPIView from apps.geolocation_package.views.region_info import RegionInfoView admin_router = SimpleRouter() admin_router.register(r'users', views.AdminUserViewSet, basename='admin-users') admin_router.register(r'directory-users', views.AdminUserDirectoryViewSet, basename='admin-directory-users') admin_router.register(r'notifications', views.AdminNotificationViewSet, basename='admin-notifications') admin_router.register(r'notification-templates', views.AdminNotificationTemplateViewSet, basename='admin-notification-templates') # Hide admin viewsets from swagger for prefix, viewset, basename in admin_router.registry: viewset.swagger_schema = None views.AdminLoginView.swagger_schema = None urlpatterns = [ path('location-info/', IPGeolocationAPIView.as_view(), name='location-info'), path('location-info/reverse/', ReverseGeolocationAPIView.as_view(), name='reverse-location-info'), path('region-info/', RegionInfoView.as_view(), name='region-info'), # URL for user registration, accepts POST requests for creating new user instances. path('register/', views.UserRegisterView.as_view(), name='user-register'), path('web/register/', views.WebUserRegisterView.as_view(), name='web-user-register'), path('verify/', views.UserVerifyView.as_view(), name='user-verify'), path('login/', views.UserLoginView.as_view(), name='user-login'), path('guest/', views.UserGuestView.as_view(), name='user-guest'), path('web/guest/', views.WebUserGuestView.as_view(), name='user-guest'), path('exchange-token/', views.ExchangeTokenAPIView.as_view(), name='exchange-token'), path('location-update/', views.LocationHistoryView.as_view(), name='user-location-history'), # path('location-info/', views.RegionInfoView.as_view(), name='region-info'), path('location-info/coordinates/', views.ReverseGeolocationAPIView.as_view(), name='location-info-by-coordinates'), # # URL to get user details, supports GET for fetching user profile based on the provided token. path('profile/', views.UserProfileView.as_view(), name='user-profile'), path('recover/', views.UserRecoverPassword.as_view(), name='user-recover'), path('reset/', views.UserResetPassword.as_view(), name='user-reset'), path('notif/', views.NotificationListView.as_view(), name='user-notif'), path('notif/read', views.NotificationReadAllView.as_view(), name='user-notif-read-all'), path('notif/send/', views.SendNotificationView.as_view(), name='user-send-notif'), path('notifications/test/', views.TestNotificationAPIView.as_view(), name='test-notifications'), # # URL to update user details, supports PUT to update user fields like phone or email given a token. path('profile/update/', views.UserUpdateView.as_view(), name='user-update'), # # delete user account path('profile/delete/', views.UserDeleteView.as_view(), name='user-delete'), path('update-fcm/', views.UpdateFCMView.as_view(), name='update-fcm'), #admin panel : path('admin/login/', views.AdminLoginView.as_view(), name='admin-login'), path('admin/', include(admin_router.urls)), ]