Пример #1
0
class RequestView(APIView):
    """
	View for requesting services
	"""

    authentication_classes = (TokenAuthentication, )
    permission_classes = (IsAuthenticated, )

    def post(self, request):
        pk = request.data.get('servicepk')
        try:
            service = OfferedService.objects.get(pk=pk)
        except OfferedService.DoesNotExist, e:
            return Response(status=status.HTTP_404_NOT_FOUND)

        service.service.seekerpk = request.user.pk
        service.service.status = "pending"

        # the force_insert=True forces .save() to create a new instance (force SQL insert).
        # service.service.save(force_insert=True)
        serializer = OfferedServiceSerializer(service)
        serializer2 = OfferedServiceSerializer(data=serializer.data)
        if serializer2.is_valid():
            serializer2.save()
        return Response(status=status.HTTP_201_CREATED)
Пример #2
0
 def put(self, request):
     pk = request.data.get('servicepk', None)
     service = self._get_object(pk)
     serializer = OfferedServiceSerializer(service, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_200_OK)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #3
0
	def put(self, request):
		pk = request.data.get('servicepk', None)
		service = self._get_object(pk)
		serializer = OfferedServiceSerializer(service, data=request.data)
		if serializer.is_valid():
			serializer.save()
			return Response(serializer.data, status=status.HTTP_200_OK)
		return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #4
0
	def post(self, request):
		providerpk = request.user.pk
		data = request.data
		data.get('service').update({"providerpk":providerpk, 'status':'available'})
		serializer = OfferedServiceSerializer(data=data)
		if serializer.is_valid():
			serializer.save()
			return Response(serializer.data, status=status.HTTP_201_CREATED)
		return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #5
0
 def post(self, request):
     providerpk = request.user.pk
     data = request.data
     data.get('service').update({
         "providerpk": providerpk,
         'status': 'available'
     })
     serializer = OfferedServiceSerializer(data=data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #6
0
	def test_invalid(self):
		serv = mommy.make(Service)
		w = mommy.make(OfferedService, service=serv)
		data = {
			'service': {
				'title': w.service.title,
				'description': '',
				'price': '',
			},
		}
		serializer = OfferedServiceSerializer(data=data)
		self.assertFalse(serializer.is_valid())
Пример #7
0
	def test_valid_and_update(self):
		serv = mommy.make(Service)
		w = mommy.make(OfferedService, service=serv)
		data = {
			'service': {
				'title': w.service.title,
				'description': w.service.description,
				'price': w.service.price,
			},
		}
		serializer = OfferedServiceSerializer(data=data)
		self.assertTrue(serializer.is_valid())
		saved = serializer.save()
		self.assertTrue(isinstance(saved, OfferedService))

		# update
		data.update({
			'service': {
				'title': 'new title',
			},
		})
		serializer = OfferedServiceSerializer(saved, data=data)
		self.assertTrue(serializer.is_valid())
		saved = serializer.save()
		self.assertTrue(isinstance(saved, OfferedService))
Пример #8
0
    def get(self, request):
        services = OfferedService.objects.filter(
            service__status='pending', service__providerpk=request.user.pk)

        serializer = OfferedServiceSerializer(services, many=True)

        return Response(serializer.data, status=status.HTTP_200_OK)
Пример #9
0
    def get(self, request):
        providerpk = request.GET.get('providerpk', None)

        services = OfferedService.objects.filter(
            service__providerpk=providerpk).order_by('-service__created')
        serializer = OfferedServiceSerializer(services, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
Пример #10
0
    def get(self, request):
        query_last = request.GET.get('query_last', None)
        servicepk = request.GET.get('servicepk', None)
        if servicepk is None:
            try:
                services = OfferedService.objects.all().order_by(
                    '-service__created')[:query_last]
            except OfferedService.DoesNotExist, e:
                return Response(status=status.HTTP_404_NOT_FOUND)

            serializer = OfferedServiceSerializer(services, many=True)
            return Response(serializer.data, status=status.HTTP_200_OK)
Пример #11
0
    def get(self, request):
        query_last = request.GET.get('query_last', None)
        servicepk = request.GET.get('servicepk', None)
        if servicepk is None:
            try:
                services = OfferedService.objects.all().order_by(
                    '-service__created')[:query_last]
            except OfferedService.DoesNotExist, e:
                return Response(status=status.HTTP_404_NOT_FOUND)

            serializer = OfferedServiceSerializer(services, many=True)
            return Response(serializer.data, status=status.HTTP_200_OK)

        else:
            service = self._get_object(servicepk)
            serializer = OfferedServiceSerializer(service)
            return Response(serializer.data, status=status.HTTP_200_OK)

    @permission_classes((IsAuthenticated, ))
    def post(self, request):
        providerpk = request.user.pk
        data = request.data
        data.get('service').update({
            "providerpk": providerpk,
            'status': 'available'
        })
        serializer = OfferedServiceSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)