diff --git a/apis_bibsonomy/api_views.py b/apis_bibsonomy/api_views.py index 16bca63..2b4cbc0 100644 --- a/apis_bibsonomy/api_views.py +++ b/apis_bibsonomy/api_views.py @@ -8,9 +8,29 @@ from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView +from rest_framework import viewsets, generics from .models import Reference from .utils import BibsonomyEntry +from .serializers import ReferenceSerializer, ReferenceQuerySerializer + +class ReferenceList(APIView): + """ + API endpoint that allows references to be viewed. + """ + authentication_classes = [] + permission_classes = [] + + def post(self, request, format=None): + serializer = ReferenceQuerySerializer(data=request.data, many=True) + references = [] + if serializer.is_valid(): + for item in serializer.validated_data: + print(item) + references.extend(list(Reference.objects.filter(**item))) + print(references) + reference_data = ReferenceSerializer(references, many=True).data + return Response(reference_data) class SaveBibsonomyEntry(APIView): diff --git a/apis_bibsonomy/serializers.py b/apis_bibsonomy/serializers.py new file mode 100644 index 0000000..86a91d3 --- /dev/null +++ b/apis_bibsonomy/serializers.py @@ -0,0 +1,12 @@ +from .models import Reference +from rest_framework import serializers + + +class ReferenceSerializer(serializers.ModelSerializer): + class Meta: + model = Reference + fields = '__all__' + +class ReferenceQuerySerializer(serializers.Serializer): + content_type_id = serializers.IntegerField() + object_id = serializers.IntegerField() diff --git a/apis_bibsonomy/templates/apis_bibsonomy/reference_list.html b/apis_bibsonomy/templates/apis_bibsonomy/reference_list.html new file mode 100644 index 0000000..559ec7c --- /dev/null +++ b/apis_bibsonomy/templates/apis_bibsonomy/reference_list.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} + +{% block content %} +