X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/dbb1ae2cf25105f7a3831961b08386a1326baef8..013ec8a416d4ff1ea3e1f2fa9ee2935623197ecd:/apps/api/urls.py?ds=sidebyside diff --git a/apps/api/urls.py b/apps/api/urls.py index 7c12c017f..1c2e656d1 100644 --- a/apps/api/urls.py +++ b/apps/api/urls.py @@ -7,16 +7,12 @@ from django.views.decorators.csrf import csrf_exempt from django.views.generic import TemplateView 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_changes_resource = Resource(handler=handlers.BookChangesHandler) -tag_changes_resource = Resource(handler=handlers.TagChangesHandler) -changes_resource = Resource(handler=handlers.ChangesHandler) - book_list_resource = CsrfExemptResource(handler=handlers.BooksHandler, authentication=auth) ebook_list_resource = Resource(handler=handlers.EBooksHandler) #book_list_resource = Resource(handler=handlers.BooksHandler) @@ -33,6 +29,22 @@ 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 header and tags. + resp.content = resp.content[49:-11] + return resp + + urlpatterns = patterns( 'piston.authentication', url(r'^oauth/request_token/$', 'oauth_request_token'), @@ -41,19 +53,13 @@ urlpatterns = patterns( ) + patterns('', url(r'^$', TemplateView.as_view(template_name='api/main.html'), name='api'), - - - # changes handlers - url(r'^book_changes/(?P\d*?)\.(?Pxml|json|yaml)$', book_changes_resource), - url(r'^tag_changes/(?P\d*?)\.(?Pxml|json|yaml)$', tag_changes_resource), - # used by mobile app - url(r'^changes/(?P\d*?)\.(?Pxml|json|yaml)$', changes_resource), + url(r'^include/(?Pbook|fragment|tag)/(?P\d+)\.(?P.+)\.(?Pxml|json)$', + incl, name='api_include'), # info boxes (used by mobile app) url(r'book/(?P\d*?)/info\.html$', 'catalogue.views.book_info'), url(r'tag/(?P\d*?)/info\.html$', 'catalogue.views.tag_info'), - # books by collections url(r'^collections/$', collection_list_resource, name="api_collections"), url(r'^collections/(?P[^/]+)/$', collection_resource, name="api_collection"),