diff --git a/apps/warehouse/web/api/v1/api.py b/apps/warehouse/web/api/v1/api.py index 721da69..4d734f7 100644 --- a/apps/warehouse/web/api/v1/api.py +++ b/apps/warehouse/web/api/v1/api.py @@ -145,8 +145,36 @@ class InventoryQuotaSaleTransactionViewSet(BaseViewSet, SoftDeleteMixin, Dynamic """ list of transactions filter by: search, all, my_transactions + filter by: transaction status """ - queryset = self.filter_query(self.get_queryset(visibility_by_org_scope=True).order_by('-create_date')) + if 'status' in request.GET.keys(): + status_param = self.request.query_params.get('status') # noqa + + if status_param == 'waiting': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='waiting').order_by('-create_date') + + elif status_param == 'success': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='success').order_by('-create_date') + + elif status_param == 'failed': + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter(transaction_status='failed').order_by('-create_date') + + else: + queryset = self.get_queryset( + visibility_by_org_scope=True + ).order_by('-create_date') + else: + queryset = self.get_queryset( + visibility_by_org_scope=True + ).order_by('-create_date') + + queryset = self.filter_query(queryset) # paginate & response page = self.paginate_queryset(queryset)