You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k4ever/k4ever/api3/views.py

56 lines
1.9 KiB

from django.db.models import Q
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated
from .serializers import BuyableTypeSerializer, BuyableSerializer, OrderSerializer
from .serializers import TransactionTypeSerializer, TransactionSerializer, VirtualTransactionSerializer
from buyable.models import BuyableType, Buyable, Order
from transaction.models import TransactionType, Transaction, VirtualTransaction
class BuyableTypeViewSet(viewsets.ReadOnlyModelViewSet):
queryset = BuyableType.objects.all()
serializer_class = BuyableTypeSerializer
class BuyableViewSet(viewsets.ReadOnlyModelViewSet):
queryset = Buyable.objects.all()
serializer_class = BuyableSerializer
class OrderViewSet(viewsets.ReadOnlyModelViewSet):
permission_classes = [IsAuthenticated]
serializer_class = OrderSerializer
def get_queryset(self):
return Order.objects.filter(user=self.request.user)
class TransactionTypeViewSet(viewsets.ReadOnlyModelViewSet):
queryset = TransactionType.objects.all()
serializer_class = TransactionTypeSerializer
class TransactionViewSet(viewsets.ReadOnlyModelViewSet):
permission_classes = [IsAuthenticated]
serializer_class = TransactionSerializer
def get_queryset(self):
return Transaction.objects.filter(user=self.request.user).order_by("-dateTime")
class VirtualTransactionViewSet(viewsets.ReadOnlyModelViewSet):
permission_classes = [IsAuthenticated]
serializer_class = VirtualTransactionSerializer
def get_queryset(self):
return (VirtualTransaction.objects.filter(Q(user=self.request.user) | Q(recipient=self.request.user))
.order_by("-dateTime"))
# class BalanceView(APIView):
# def get(self, request):
# return Response({'balance': request.user.userprofile.balance}
class BalanceViewSet(viewsets.ReadOnlyModelViewSet):
pass