Esempio n. 1
0
def listing_list(request):

    if request.method == 'GET':
        listings = Listing.objects.all()
        serializer = ListingSerializer(listings, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = ListingSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
Esempio n. 2
0
def listing_detail(request, pk):

    try:
        listing = Listing.objects.get(pk=pk)
    except Listing.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = ListingSerializer(listing)
        return JSONResponse(serializer.data)

    elif request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = ListingSerializer(listing, data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data)
        return JSONResponse(serializer.errors, status=400)

    elif request.method == 'DELETE':
        listing.delete()
        return HttpResponse(status=204)
    def post(self, request):
        data = json.loads(request.body)
        serializer = ListingSerializer(data=data)
        if not serializer.is_valid():
            return JsonResponse({'errors': serializer.errors},
                                status=status_codes.HTTP_400_BAD_REQUEST)
        clean_data = serializer.validated_data

        user = User.objects.filter(id=request.user.id).first()
        if not user:
            return JsonResponse(
                {
                    'errors':
                    'An error occured, could not retrieve user associated with auth token.'
                },
                status=status_codes.HTTP_403_FORBIDDEN)
        model = Listing(posted_by=user,
                        title=clean_data['title'],
                        category=clean_data['category'],
                        description=clean_data['description'])
        model.save()
        return JsonResponse({'listing': model.to_dict()},
                            status=status_codes.HTTP_200_OK)
Esempio n. 4
0
 def get(self, request):
     listings = Listing.objects.all()[:20]
     data = ListingSerializer(listings, many=True).data
     return Response(data)
Esempio n. 5
0
 def get(self, request, pk):
     a_listing = get_object_or_404(Listing, pk=pk)
     data = ListingSerializer(a_listing).data
     return Response(data)
Esempio n. 6
0
 def get(self, request, slug):
     listing = get_object_or_404(Listing, slug=slug)
     data = ListingSerializer(listing).data
     return Response(data)