filter for user transactions

This commit is contained in:
Sayyid Hamid Mahdavi 2025-05-15 10:59:55 +03:30
parent e54e4ae829
commit a17c5f60bd
3 changed files with 21 additions and 1 deletions

14
apps/wallet/filters.py Normal file
View file

@ -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'],
}

View file

@ -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')

View file

@ -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()