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