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_numer': page.page_number,
|
||||||
'page_label': page.page_label,
|
'page_label': page.page_label,
|
||||||
|
'is_zoomable': reverse('documents-expensive-is_zoomable', args=[instance.pk, page.page_number]),
|
||||||
|
|
||||||
#'content':
|
#'content':
|
||||||
}
|
}
|
||||||
for page in instance.documentpage_set.all()
|
for page in instance.documentpage_set.all()
|
||||||
@@ -33,6 +35,4 @@ class DocumentResourceSimple(ModelResource):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def expensive_methods(self, instance):
|
def expensive_methods(self, instance):
|
||||||
return [
|
return []
|
||||||
{'is_zoomable': reverse('documents-expensive-is_zoomable', args=[instance.pk])},
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from django.conf.urls.defaults import patterns, url
|
|||||||
from djangorestframework.views import ListModelView
|
from djangorestframework.views import ListModelView
|
||||||
from djangorestframework.views import ListOrCreateModelView, InstanceModelView
|
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
|
from rest_api.resources import DocumentResourceSimple
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
@@ -12,7 +12,5 @@ urlpatterns = patterns('',
|
|||||||
|
|
||||||
# Version 0 alpha API calls
|
# 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]+)/$', 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]+)/page/(?P<page_number>[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'),
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -40,30 +40,16 @@ class APIBase(View):
|
|||||||
class Version_0(View):
|
class Version_0(View):
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
return [
|
return [
|
||||||
{'name': 'Resources', 'resources': ['documents/<pk>']}
|
{'name': 'Resources', 'resources': ['document/<pk>']}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class IsZoomable(View):
|
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']))
|
logger.info('received is_zoomable call from: %s' % (request.META['REMOTE_ADDR']))
|
||||||
document = get_object_or_404(Document, pk=pk)
|
document = get_object_or_404(Document, pk=pk)
|
||||||
try:
|
try:
|
||||||
document.get_image_cache_name(1) # TODO: page
|
document.get_image_cache_name(int(page_number))
|
||||||
return {'result': True}
|
return {'result': True}
|
||||||
except (UnknownFileFormat, UnkownConvertError):
|
except (UnknownFileFormat, UnkownConvertError):
|
||||||
return {'result': False}
|
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