v3: User lists
[wolnelektury.git] / src / api / urls.py
1 # This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
2 # Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
3 #
4 from django.urls import path, include
5 from django.views.decorators.csrf import csrf_exempt
6 from django.views.generic import TemplateView
7 import catalogue.views
8 from stats.utils import piwik_track_view
9 from . import views
10
11
12 urlpatterns1 = [
13     path('register/', csrf_exempt(views.RegisterView.as_view())),
14     path('refreshToken/', csrf_exempt(views.RefreshTokenView.as_view())),
15     path('requestConfirm/', csrf_exempt(views.RequestConfirmView.as_view())),
16     path('login/', csrf_exempt(views.Login2View.as_view())),
17     path('me/', views.UserView.as_view()),
18     path('deleteAccount/', views.DeleteAccountView.as_view()),
19     path('password/', views.PasswordView.as_view()),
20     path('password-reset/', views.ResetPasswordView.as_view()),
21     path("session-transfer/", views.SessionTransferTokenView.as_view()),
22     path("session-transfer/continue/", views.ConsumeSessionTransferTokenView.as_view(), name="api-session-continue"),
23
24     path('', include('catalogue.api.urls2')),
25     path('', include('social.api.urls2')),
26     path('', include('bookmarks.api.urls')),
27     path('', include('search.api.urls')),
28     path('', include('push.api.urls')),
29
30     path('partners/', include('partners.api.urls')),
31 ]
32
33
34 urlpatterns = [
35     path('2/', include((urlpatterns1, 'api'), namespace="v2")),
36     path('3/', include((urlpatterns1, 'api'), namespace="v3")),
37     path('1/<path:path>', views.Unsupported.as_view()),
38
39     path('oauth/request_token/', csrf_exempt(views.OAuth1RequestTokenView.as_view())),
40     path('oauth/authorize/', views.oauth_user_auth, name='oauth_user_auth'),
41     path('oauth/access_token/', csrf_exempt(views.OAuth1AccessTokenView.as_view())),
42     path('login/', csrf_exempt(views.LoginView.as_view())),
43
44     path('', TemplateView.as_view(template_name='api/main.html'), name='api'),
45
46     # info boxes (used by mobile app)
47     path('book/<int:book_id>/info.html', catalogue.views.book_info),
48     path('tag/<int:tag_id>/info.html', catalogue.views.tag_info),
49
50     # reading data
51     path('reading/<slug:slug>/',
52          piwik_track_view(views.BookUserDataView.as_view()),
53          name='api_reading'),
54     path('reading/<slug:slug>/<slug:state>/',
55          piwik_track_view(views.BookUserDataView.as_view()),
56          name='api_reading'),
57     path('username/',
58          piwik_track_view(views.UserView.as_view()),
59          name='api_username'),
60
61     path('blog',
62          piwik_track_view(views.BlogView.as_view())),
63
64     path('', include('social.api.urls')),
65     path('', include('catalogue.api.urls')),
66
67 ]