HH/apps/surveys/urls.py
2025-12-24 12:42:31 +03:00

39 lines
1.6 KiB
Python

from django.urls import include, path
from rest_framework.routers import DefaultRouter
from .views import (
PublicSurveyViewSet,
SurveyInstanceViewSet,
SurveyQuestionViewSet,
SurveyResponseViewSet,
SurveyTemplateViewSet,
)
from . import public_views, ui_views
app_name = 'surveys'
router = DefaultRouter()
router.register(r'api/templates', SurveyTemplateViewSet, basename='survey-template-api')
router.register(r'api/questions', SurveyQuestionViewSet, basename='survey-question-api')
router.register(r'api/instances', SurveyInstanceViewSet, basename='survey-instance-api')
router.register(r'api/responses', SurveyResponseViewSet, basename='survey-response-api')
urlpatterns = [
# Public survey pages (no auth required)
path('s/<str:token>/', public_views.survey_form, name='survey_form'),
path('s/<str:token>/thank-you/', public_views.thank_you, name='thank_you'),
path('invalid/', public_views.invalid_token, name='invalid_token'),
# UI Views (authenticated)
path('instances/', ui_views.survey_instance_list, name='instance_list'),
path('instances/<uuid:pk>/', ui_views.survey_instance_detail, name='instance_detail'),
path('templates/', ui_views.survey_template_list, name='template_list'),
# Public API endpoints (no auth required)
path('public/<str:token>/', PublicSurveyViewSet.as_view({'get': 'retrieve'}), name='public-survey'),
path('public/<str:token>/submit/', PublicSurveyViewSet.as_view({'post': 'submit'}), name='public-survey-submit'),
# Authenticated API endpoints
path('', include(router.urls)),
]