예제 #1
0
  def rfid(self, request, pk):
    """
    Set a Users RFID(privileged operation).
    ---

    serializer: api.serializers.RFIDSerializer
    """
    u = self.get_object()

    user = request._user

    serializer = RFIDSerializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    rfid = serializer.validated_data['rfid']

    u.rfid = rfid

    # save() causes server error
    try:
      u.save()
    except IntegrityError:
      error = ParseError(detail="RFID already belongs to another member.")
      error.errno = DUPLICATE
      raise error

    api_request = create_api_request(request, serializer)
    api_request.user = u
    api_request.save()

    return Response({
      "api_request": api_request.id
    })