Modified the is_zoomable API call to be document pk and document page number based
This commit is contained in:
@@ -25,6 +25,8 @@ class DocumentResourceSimple(ModelResource):
|
||||
{
|
||||
'page_numer': page.page_number,
|
||||
'page_label': page.page_label,
|
||||
'is_zoomable': reverse('documents-expensive-is_zoomable', args=[instance.pk, page.page_number]),
|
||||
|
||||
#'content':
|
||||
}
|
||||
for page in instance.documentpage_set.all()
|
||||
@@ -33,6 +35,4 @@ class DocumentResourceSimple(ModelResource):
|
||||
]
|
||||
|
||||
def expensive_methods(self, instance):
|
||||
return [
|
||||
{'is_zoomable': reverse('documents-expensive-is_zoomable', args=[instance.pk])},
|
||||
]
|
||||
return []
|
||||
|
||||
@@ -3,7 +3,7 @@ from django.conf.urls.defaults import patterns, url
|
||||
from djangorestframework.views import ListModelView
|
||||
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
|
||||
|
||||
from rest_api.views import APIBase, Version_0, ReadOnlyInstanceModelView, IsZoomable, Exists, Size
|
||||
from rest_api.views import APIBase, Version_0, ReadOnlyInstanceModelView, IsZoomable
|
||||
from rest_api.resources import DocumentResourceSimple
|
||||
|
||||
urlpatterns = patterns('',
|
||||
@@ -12,7 +12,5 @@ urlpatterns = patterns('',
|
||||
|
||||
# Version 0 alpha API calls
|
||||
url(r'^v0/document/(?P<pk>[0-9]+)/$', ReadOnlyInstanceModelView.as_view(resource=DocumentResourceSimple), name='documents-simple'),
|
||||
url(r'^v0/document/(?P<pk>[0-9]+)/expensive/is_zoomable/$', IsZoomable.as_view(), name='documents-expensive-is_zoomable'),
|
||||
url(r'^v0/document/(?P<pk>[0-9]+)/expensive/exists/$', IsZoomable.as_view(), name='documents-expensive-exists'),
|
||||
url(r'^v0/document/(?P<pk>[0-9]+)/expensive/size/$', Size.as_view(), name='documents-expensive-size'),
|
||||
url(r'^v0/document/(?P<pk>[0-9]+)/page/(?P<page_number>[0-9]+)/expensive/is_zoomable/$', IsZoomable.as_view(), name='documents-expensive-is_zoomable'),
|
||||
)
|
||||
|
||||
@@ -40,30 +40,16 @@ class APIBase(View):
|
||||
class Version_0(View):
|
||||
def get(self, request):
|
||||
return [
|
||||
{'name': 'Resources', 'resources': ['documents/<pk>']}
|
||||
{'name': 'Resources', 'resources': ['document/<pk>']}
|
||||
]
|
||||
|
||||
|
||||
class IsZoomable(View):
|
||||
def get(self, request, pk):
|
||||
def get(self, request, pk, page_number):
|
||||
logger.info('received is_zoomable call from: %s' % (request.META['REMOTE_ADDR']))
|
||||
document = get_object_or_404(Document, pk=pk)
|
||||
try:
|
||||
document.get_image_cache_name(1) # TODO: page
|
||||
document.get_image_cache_name(int(page_number))
|
||||
return {'result': True}
|
||||
except (UnknownFileFormat, UnkownConvertError):
|
||||
return {'result': False}
|
||||
|
||||
|
||||
class Exists(View):
|
||||
def get(self, request, pk):
|
||||
logger.info('received exists call from: %s' % (request.META['REMOTE_ADDR']))
|
||||
document = get_object_or_404(Document, pk=pk)
|
||||
return {'result': document.exists()}
|
||||
|
||||
|
||||
class Size(View):
|
||||
def get(self, request, pk):
|
||||
logger.info('received size call from: %s' % (request.META['REMOTE_ADDR']))
|
||||
document = get_object_or_404(Document, pk=pk)
|
||||
return {'result': document.size}
|
||||
|
||||
Reference in New Issue
Block a user