Пример #1
0
    def create(self, request):
        """
        Bulk creation

        create multiple transactions at once
        """
        serializer = TransactionSerializer(many=True, data=request.data)
        serializer.is_valid(raise_exception=True)
        transactions = serializer.save()
        return Response(
            TransactionSerializer(transactions, many=True).data,
            status=status.HTTP_201_CREATED,
        )
Пример #2
0
 def post(self, request, folio_android, format=None):
     transaction = self.get_object(folio_android)
     serializer = TransactionSerializer(transaction, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #3
0
 def create(self, request, format=None):
     serializer = TransactionSerializer(data=request.data,
                                        context={'request': request})
     if serializer.is_valid():
         self.save_transaction(serializer)
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #4
0
 def create(self, request, *args, **kwargs):
     data = request.data
     transaction = TransactionSerializer(data=data)
     if transaction.is_valid():
         try:
             transaction.save()
         except ValidationError:
             return Response({'error': 'not enough bts'},
                             status.HTTP_400_BAD_REQUEST)
         return Response(status=status.HTTP_201_CREATED)
     else:
         return Response(status=status.HTTP_400_BAD_REQUEST)
 def validate(cls, data):
     """
     Validate transaction data
     :param data: json, dict, xml
     :return: dict with validation result and errors
     """
     if cls.is_valid_json(data):
         data = json.loads(data)
     if cls.is_valid_xml(data):
         data = XMLParser().parse(data)
     serializer_data = TransactionSerializer(data=data)
     return {
         'is_valid': serializer_data.is_valid(),
         'errors': serializer_data.errors
     }
Пример #6
0
def make_transaction(request):
    user = UserSerializer(User.objects.get(username=request.user))
    balance = UserBalance.objects.get(user=user.data['id'])
    if request.data['transaction_type'] == 1 and balance.balance < request.data[
            'price'] * request.data['amount']:
        return Response({"details": "Your balance is not enough."},
                        status=status.HTTP_400_BAD_REQUEST)

    newBalance = balance.balance
    if request.data['transaction_type'] == 1:
        newBalance -= request.data['price'] * request.data['amount']
    else:
        newBalance += request.data['price'] * request.data['amount']
    balance.balance = newBalance
    balance.save()

    serializer = TransactionSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(owner=request.user)
        return JsonResponse(serializer.data, status=status.HTTP_201_CREATED)
    return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Пример #7
0
 def post(self, request, format=None):
     serializer = TransactionSerializer(data=request.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)
Пример #8
0
def serialize_dict(obj):
    serializer = TransactionSerializer(data=obj)
    if serializer.is_valid():
        serializer.save()
        return JsonResponse(serializer.data, status=201)
Пример #9
0
 def test_serializer_all_fields_validates(self):
     serializer = TransactionSerializer(data=self.get_full_data(), context=self.serializer_context)
     self.assertTrue(serializer.is_valid(raise_exception=True))
Пример #10
0
 def test_serializer_only_required_fields_validates(self):
     serializer = TransactionSerializer(data=self.serializer_data, context=self.serializer_context)
     self.assertTrue(serializer.is_valid(raise_exception=True))