app.infrastructure.urls
1from rest_framework.routers import DefaultRouter 2from rest_framework_nested import routers 3from django.urls import path, include 4from .views import ( 5 HospitalViewSet, PasswordChangeViewSet, RoleViewSet, HospitalUserViewSet, 6 ShiftViewSet, BlockViewSet, WardViewSet, ApproverHierarchyViewSet, 7 SwitchBlock, SwitchWard 8) 9 10# Main router for hospitals 11router = DefaultRouter() 12router.register(r'hospitals', HospitalViewSet, basename='hospital') 13 14# Nested routers for hospital resources 15hospitals_router = routers.NestedDefaultRouter(router, r'hospitals', lookup='hospital') 16hospitals_router.register(r'roles', RoleViewSet, basename='hospital-roles') 17hospitals_router.register(r'users', HospitalUserViewSet, basename='hospital-users') 18hospitals_router.register(r'shifts', ShiftViewSet, basename='hospital-shifts') 19hospitals_router.register(r'blocks', BlockViewSet, basename='hospital-blocks') 20hospitals_router.register(r'hierarchies', ApproverHierarchyViewSet, basename='hospital-hierarchies') 21hospitals_router.register(r'wards', WardViewSet, basename='hospital-wards') 22 23urlpatterns = [ 24 # Hospital CRUD and nested resources 25 path('api/', include(router.urls)), 26 path('api/', include(hospitals_router.urls)), 27 28 # Custom endpoints 29 path('api/set-password/', PasswordChangeViewSet.as_view(), name='set_password'), 30 path('api/switch-block/', SwitchBlock.as_view(), name='switch_block'), 31 path('api/switch-ward/', SwitchWard.as_view(), name='switch_ward'), 32] 33 34""" 35Infrastructure API endpoints: 36 37- /api/hospitals/ : Hospital CRUD 38- /api/hospitals/{hospital_pk}/roles/ : Role CRUD for a hospital 39- /api/hospitals/{hospital_pk}/users/ : Hospital user CRUD 40- /api/hospitals/{hospital_pk}/shifts/ : Shift CRUD for a hospital 41- /api/hospitals/{hospital_pk}/blocks/ : Block CRUD for a hospital 42- /api/hospitals/{hospital_pk}/hierarchies/ : Approver hierarchy CRUD 43- /api/hospitals/{hospital_pk}/wards/ : Ward CRUD for a hospital 44- /api/set-password/ : Change user password 45- /api/switch-block/ : Switch user's current block 46- /api/switch-ward/ : Switch user's current ward 47 48All endpoints are documented for OpenAPI generation via drf-yasg. 49"""
router =
<rest_framework.routers.DefaultRouter object>
hospitals_router =
<rest_framework_nested.routers.NestedDefaultRouter object>
urlpatterns =
[<URLResolver <URLPattern list> (None:None) 'api/'>, <URLResolver <URLPattern list> (None:None) 'api/'>, <URLPattern 'api/set-password/' [name='set_password']>, <URLPattern 'api/switch-block/' [name='switch_block']>, <URLPattern 'api/switch-ward/' [name='switch_ward']>]
Infrastructure API endpoints:
- /api/hospitals/ : Hospital CRUD
- /api/hospitals/{hospital_pk}/roles/ : Role CRUD for a hospital
- /api/hospitals/{hospital_pk}/users/ : Hospital user CRUD
- /api/hospitals/{hospital_pk}/shifts/ : Shift CRUD for a hospital
- /api/hospitals/{hospital_pk}/blocks/ : Block CRUD for a hospital
- /api/hospitals/{hospital_pk}/hierarchies/ : Approver hierarchy CRUD
- /api/hospitals/{hospital_pk}/wards/ : Ward CRUD for a hospital
- /api/set-password/ : Change user password
- /api/switch-block/ : Switch user's current block
- /api/switch-ward/ : Switch user's current ward
All endpoints are documented for OpenAPI generation via drf-yasg.