Files
2025-08-03 12:36:27 +02:00

39 lines
2.3 KiB
Python

from django.urls import path
from . import views
from django.conf import settings
from django.conf.urls.static import static
from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
urlpatterns = [
### API
path('api/', views.api_root, name="api-root"),
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),
path('api/schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
path('api/track/', views.TrackListView.as_view(), name="api-tracks"),
path('api/track/vote', views.TrackVoteView.as_view(), name="api-track-vote"),
path('api/track/<id>', views.TrackDetailView.as_view(), name="api-track"),
path('api/artist/<id>', views.ArtistDetailView.as_view(), name="api-artist"),
path('api/artist', views.ArtistListView.as_view(), name="api-artists"),
path('api/album/<id>', views.AlbumDetailView.as_view(), name="api-album"),
path('api/album/', views.AlbumListView.as_view(), name="api-albums"),
path('api/vote/', views.VoteListView.as_view(), name="api-votes"),
path('api/vote/<id>', views.VoteDetailView.as_view(), name="api-vote"),
path('api/user/', views.UserListView.as_view(), name="api-users"),
path('api/user/<int:id>', views.UserDetailView.as_view(), name="api-user"),
path('api/profile/me', views.ProfileMeView.as_view(), name="api-profile-me"),
### Classic
path('track/', views.NominateView.as_view(), name="nominate"),
path('vote/', views.VoteView.as_view(), name="vote"),
path('vote/undo', views.UndoView.as_view(), name="undo"),
path('vote/skip', views.SkipView.as_view(), name="skip"),
path('settings/', views.SettingsView.as_view(), name="settings"),
path('settings/playlist-import', views.PlaylistImportView.as_view(), name="playlist-import"),
path('overview/', views.OverView.as_view(), name="overview"),
path('overview/playlist', views.PlaylistListView.as_view(), name="playlist-list"),
path('overview/playlist/<int:id>', views.PlaylistDetailView.as_view(), name="playlist-detail"),
path('spotify/callback', views.SpotifyCallbackView.as_view(), name="spotify-callback"),
path('stroopwafel', views.StroopwafelView.as_view(), name="stroopwafel"),
path('', views.AuthView.as_view()),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)