Modified the is_zoomable API call to be document pk and document page number based

This commit is contained in:
Roberto Rosario
2011-11-22 09:22:49 -04:00
parent db89cdde55
commit fc344d0c9e
3 changed files with 8 additions and 24 deletions

View File

@@ -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])},
]

View File

@@ -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'),
) )

View File

@@ -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}