From fd0c261d18b3fa9fb37cc04b3958136a956d1069 Mon Sep 17 00:00:00 2001 From: jgw4sq <~jgw4sq@virginia.edu> Date: Fri, 11 Mar 2016 14:00:38 -0500 Subject: [PATCH 1/2] New Pull Request for url query by providerupdatetime --- api/webview/urls.py | 2 +- api/webview/views.py | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/api/webview/urls.py b/api/webview/urls.py index 38f8c658..bab19484 100644 --- a/api/webview/urls.py +++ b/api/webview/urls.py @@ -2,7 +2,7 @@ from api.webview import views urlpatterns = [ - url(r'^documents/$', views.DocumentList.as_view()), + url(r'^(documents/){1}(from=((?P(\d{4}-\d{2}-\d{2}){0,1}))&until=((?P\d{4}-\d{2}-\d{2}){0,1})){0,1}/{0,1}$', views.DocumentList.as_view()), url(r'^get-api-key/$', views.DocumentList.as_view(), name='get-api-key'), url(r'^documents/status', views.status, name='status'), url(r'^documents/(?P\w+)/$', views.DocumentsFromSource.as_view(), name='source'), diff --git a/api/webview/views.py b/api/webview/views.py index bc077f54..15265924 100644 --- a/api/webview/views.py +++ b/api/webview/views.py @@ -5,7 +5,7 @@ from rest_framework.response import Response from rest_framework.decorators import api_view from django.views.decorators.clickjacking import xframe_options_exempt - +from dateutil.parser import parse from elasticsearch import Elasticsearch from scrapi import settings @@ -28,7 +28,13 @@ def perform_create(self, serializer): def get_queryset(self): """ Return all documents """ - return Document.objects.all() + filters={} + if self.kwargs.get('from',None): + filters['providerUpdatedDateTime__gte'] = parse(self.kwargs['from']) + if self.kwargs.get('until',None): + filters['providerUpdatedDateTime__lte'] = parse(self.kwargs['until']) + + return Document.objects.filter(**filters) class DocumentsFromSource(generics.ListAPIView): @@ -44,7 +50,25 @@ def perform_create(self, serializer): def get_queryset(self): """ Return queryset based on source """ - return Document.objects.filter(source=self.kwargs['source']) + return Document.objects.filter(source=self.kwargs['source']).exclude(normalized=None) + + +class DocumentsByProviderUpdatedDateTime(generics.ListAPIView): + """ + List all documents updated within specified time frame + """ + serializer_class = DocumentSerializer + permission_classes = (permissions.IsAuthenticatedOrReadOnly,) + + def perform_create(self, serializer): + serializer.save(source=self.request.user) + + def get_queryset(self): + """ Return queryset based on provider update time + """ + queryset = Document.objects.all() + queryset = queryset.filter(providerUpdatedDateTime__gte=parse(self.kwargs['from'])).filter(providerUpdatedDateTime__lte=parse(self.kwargs['until'])) + return queryset @api_view(['GET']) From 49323a947dac7c8b07a38588df0c206ee628dd81 Mon Sep 17 00:00:00 2001 From: jgw4sq <~jgw4sq@virginia.edu> Date: Fri, 11 Mar 2016 14:02:24 -0500 Subject: [PATCH 2/2] Deleting of unnecesary code on previous commit --- api/webview/views.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/api/webview/views.py b/api/webview/views.py index 15265924..2afa85a1 100644 --- a/api/webview/views.py +++ b/api/webview/views.py @@ -53,24 +53,6 @@ def get_queryset(self): return Document.objects.filter(source=self.kwargs['source']).exclude(normalized=None) -class DocumentsByProviderUpdatedDateTime(generics.ListAPIView): - """ - List all documents updated within specified time frame - """ - serializer_class = DocumentSerializer - permission_classes = (permissions.IsAuthenticatedOrReadOnly,) - - def perform_create(self, serializer): - serializer.save(source=self.request.user) - - def get_queryset(self): - """ Return queryset based on provider update time - """ - queryset = Document.objects.all() - queryset = queryset.filter(providerUpdatedDateTime__gte=parse(self.kwargs['from'])).filter(providerUpdatedDateTime__lte=parse(self.kwargs['until'])) - return queryset - - @api_view(['GET']) @xframe_options_exempt def document_detail(request, source, docID):