diff --git a/apps/wallet/filters.py b/apps/wallet/filters.py new file mode 100644 index 0000000..85ab859 --- /dev/null +++ b/apps/wallet/filters.py @@ -0,0 +1,14 @@ +import django_filters +from django.db.models import Q + + +from .models import Transaction + + +class UserTransactionFilter(django_filters.FilterSet): + class Meta: + model = Transaction + fields = { + 'payer_id': ['iexact'], + 'payee_id': ['iexact'], + } diff --git a/apps/wallet/views/application.py b/apps/wallet/views/application.py index f601916..273531e 100755 --- a/apps/wallet/views/application.py +++ b/apps/wallet/views/application.py @@ -79,7 +79,8 @@ class DepositSubmitAPIView(generics.CreateAPIView): application=application) try: instance.submit() - except: + except Exception as e: + print(e) APIException('Failed to submit deposit') diff --git a/apps/wallet/views/user.py b/apps/wallet/views/user.py index 8bba8f1..8558b5c 100755 --- a/apps/wallet/views/user.py +++ b/apps/wallet/views/user.py @@ -4,6 +4,7 @@ from django.db.models import Q from django.urls import reverse from django.utils.decorators import method_decorator from django.views.generic import DetailView, ListView, UpdateView +from django_filters.rest_framework import DjangoFilterBackend from oauth2_provider.contrib.rest_framework import TokenHasScope, IsAuthenticatedOrTokenHasScope from rest_framework import generics, permissions @@ -15,6 +16,7 @@ from apps.wallet.models import Transaction from apps.wallet.serializers import UserTransactionSerializer, DepositSerializer, WithdrawSerializer, \ MyWalletSerializer from ..constans import StateChoices, TypeChoices +from ..filters import UserTransactionFilter from ..forms import TransactionActionForm from django.utils.translation import gettext_lazy as _ @@ -56,6 +58,9 @@ class TransactionList(generics.ListAPIView): # "POST": [['wallet.invoice:create']], } + filter_backends = (DjangoFilterBackend,) + filterset_class = UserTransactionFilter + def get_queryset(self): user = self.request.user return Transaction.objects.filter(Q(payee_id=user.pk, payee_type=TypeChoices.USER.value) | Q(payer_id=user.pk, payer_type=TypeChoices.USER.value)).all()