-from piston.authentication import OAuthAuthentication, oauth_access_token
-from piston.resource import Resource
-from ssify import ssi_included
-from api import handlers
-from api.helpers import CsrfExemptResource
-
-auth = OAuthAuthentication(realm="Wolne Lektury")
-
-book_list_resource = CsrfExemptResource(handler=handlers.BooksHandler, authentication=auth)
-ebook_list_resource = Resource(handler=handlers.EBooksHandler)
-# book_list_resource = Resource(handler=handlers.BooksHandler)
-book_resource = Resource(handler=handlers.BookDetailHandler)
-
-collection_resource = Resource(handler=handlers.CollectionDetailHandler)
-collection_list_resource = Resource(handler=handlers.CollectionsHandler)
-
-tag_list_resource = Resource(handler=handlers.TagsHandler)
-tag_resource = Resource(handler=handlers.TagDetailHandler)
-
-fragment_resource = Resource(handler=handlers.FragmentDetailHandler)
-fragment_list_resource = Resource(handler=handlers.FragmentsHandler)
-
-picture_resource = CsrfExemptResource(handler=handlers.PictureHandler, authentication=auth)
-
-
-@ssi_included
-def incl(request, model, pk, emitter_format):
- resource = {
- 'book': book_list_resource,
- 'fragment': fragment_list_resource,
- 'tag': tag_list_resource,
- }[model]
- request.piwik_track = False
- resp = resource(request, pk=pk, emitter_format=emitter_format)
- if emitter_format == 'xml':
- # Ugly, but quick way of stripping <?xml?> header and <response> tags.
- resp.content = resp.content[49:-11]
- return resp
-
-
-urlpatterns = patterns(
- 'piston.authentication',
- url(r'^oauth/request_token/$', 'oauth_request_token'),
- url(r'^oauth/authorize/$', 'oauth_user_auth'),
- url(r'^oauth/access_token/$', csrf_exempt(oauth_access_token)),
-
-) + patterns(
- '',
- url(r'^$', TemplateView.as_view(template_name='api/main.html'), name='api'),
- url(r'^include/(?P<model>book|fragment|tag)/(?P<pk>\d+)\.(?P<lang>.+)\.(?P<emitter_format>xml|json)$',
- incl, name='api_include'),
+import catalogue.views
+from stats.utils import piwik_track_view
+from . import views
+
+
+urlpatterns1 = [
+ path('register/', csrf_exempt(views.RegisterView.as_view())),
+ path('refreshToken/', csrf_exempt(views.RefreshTokenView.as_view())),
+ path('requestConfirm/', csrf_exempt(views.RequestConfirmView.as_view())),
+ path('login/', csrf_exempt(views.Login2View.as_view())),
+ path('me/', views.UserView.as_view()),
+ path('deleteAccount/', views.DeleteAccountView.as_view()),
+ path('password/', views.PasswordView.as_view()),
+ path('password-reset/', views.ResetPasswordView.as_view()),
+ path("session-transfer/", views.SessionTransferTokenView.as_view()),
+ path("session-transfer/continue/", views.ConsumeSessionTransferTokenView.as_view(), name="api-session-continue"),
+
+ path('', include('catalogue.api.urls2')),
+ path('', include('social.api.urls2')),
+ path('', include('bookmarks.api.urls')),
+ path('', include('search.api.urls')),
+ path('', include('push.api.urls')),
+
+ path('partners/', include('partners.api.urls')),
+]
+
+
+urlpatterns = [
+ path('2/', include((urlpatterns1, 'api'), namespace="v2")),
+ path('3/', include((urlpatterns1, 'api'), namespace="v3")),
+ path('4/', include((urlpatterns1, 'api'), namespace="v4")),
+ path('1/<path:path>', views.Unsupported.as_view()),
+
+ path('oauth/request_token/', csrf_exempt(views.OAuth1RequestTokenView.as_view())),
+ path('oauth/authorize/', views.oauth_user_auth, name='oauth_user_auth'),
+ path('oauth/access_token/', csrf_exempt(views.OAuth1AccessTokenView.as_view())),
+ path('login/', csrf_exempt(views.LoginView.as_view())),
+
+ path('', TemplateView.as_view(template_name='api/main.html'), name='api'),