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..2afa85a1 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,7 @@ 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) @api_view(['GET'])