diff --git a/portfolios/views.py b/portfolios/views.py index a7a2e08..00d33ed 100644 --- a/portfolios/views.py +++ b/portfolios/views.py @@ -77,8 +77,11 @@ class PortfolioChangeState(APIView): portfolio = get_object_or_404(Portfolio, pk=pk) user = request.user action_type = request.query_params.get('type') - if PortfolioBeforeRelCheckService.check_user_portfolio_rel(action_type, portfolio, user): - return Response({"message": "already done"}, status=status.HTTP_400_BAD_REQUEST) + try: + if PortfolioBeforeRelCheckService.check_user_portfolio_rel(action_type, portfolio, user): + return Response({"message": "already done"}, status=status.HTTP_400_BAD_REQUEST) + except ValueError as e: + return Response({'message': str(e)}, status=status.HTTP_400_BAD_REQUEST) return self._handle_action(action_type, portfolio, user, add=True) @transaction.atomic @@ -86,8 +89,11 @@ class PortfolioChangeState(APIView): portfolio = get_object_or_404(Portfolio, pk=pk) user = request.user action_type = request.query_params.get('type') - if not PortfolioBeforeRelCheckService.check_user_portfolio_rel(action_type, portfolio, user): - return Response({"message": "never done before"}, status=status.HTTP_400_BAD_REQUEST) + try: + if not PortfolioBeforeRelCheckService.check_user_portfolio_rel(action_type, portfolio, user): + return Response({"message": "never done before"}, status=status.HTTP_400_BAD_REQUEST) + except ValueError as e: + return Response({'message': str(e)}, status=status.HTTP_400_BAD_REQUEST) return self._handle_action(action_type, portfolio, user, add=False) def _handle_action(self, action_type, portfolio, user, add=True):