From c0637b93d3729a01589c9aa9ba19875b71aaf00a Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Wed, 23 Jul 2025 10:16:45 +0500 Subject: [PATCH] change contract apis response --- core/apps/accounts/views/auth.py | 2 +- core/apps/contracts/views/contract.py | 11 ++++------- core/apps/contracts/views/contract_side.py | 6 +++--- core/apps/contracts/views/contract_signature.py | 7 ++++--- core/apps/{accounts => shared}/utils/response.py | 0 5 files changed, 12 insertions(+), 14 deletions(-) rename core/apps/{accounts => shared}/utils/response.py (100%) diff --git a/core/apps/accounts/views/auth.py b/core/apps/accounts/views/auth.py index f908d71..d6500f7 100644 --- a/core/apps/accounts/views/auth.py +++ b/core/apps/accounts/views/auth.py @@ -9,7 +9,7 @@ from core.apps.accounts.serializers import auth as auth_serializer from core.apps.accounts.models.verification_code import VerificationCode from core.apps.accounts.cache.user import cache_user_credentials, get_user_creadentials from core.apps.accounts.tasks import user as user_tasks -from core.apps.accounts.utils.response import success_message, error_message +from core.apps.shared.utils.response import success_message, error_message User = get_user_model() diff --git a/core/apps/contracts/views/contract.py b/core/apps/contracts/views/contract.py index c7db079..ca8af2a 100644 --- a/core/apps/contracts/views/contract.py +++ b/core/apps/contracts/views/contract.py @@ -3,6 +3,8 @@ from rest_framework.response import Response from core.apps.contracts.serializers import contract as contract_serializer from core.apps.contracts.models.contract import Contract +from core.apps.shared.utils.response import success_message, error_message + class ContractCreateApiView(generics.CreateAPIView): @@ -18,12 +20,7 @@ class ContractCreateApiView(generics.CreateAPIView): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) contract = serializer.save() - - return Response({ - "success": True, - "message": "Contract successfully created", - "contract_id": str(contract) - }, status=status.HTTP_201_CREATED) + return success_message(str(contract.id), 201) class ContractListApiView(generics.ListAPIView): @@ -38,6 +35,6 @@ class ContractDetailApiView(views.APIView): def get(self, request, id): contract = Contract.objects.filter(id=id, contract_sides__user=request.user).prefetch_related('contract_sides').first() if not contract: - return Response({'success': False, "message": 'contract not found'}, status=404) + return error_message("Contract not found", 404) serializer = contract_serializer.ContractDetailSerializer(contract) return Response(serializer.data, status=200) \ No newline at end of file diff --git a/core/apps/contracts/views/contract_side.py b/core/apps/contracts/views/contract_side.py index 0300bbc..62a8872 100644 --- a/core/apps/contracts/views/contract_side.py +++ b/core/apps/contracts/views/contract_side.py @@ -4,7 +4,7 @@ from rest_framework.response import Response from core.apps.contracts.serializers import contract_side as contract_side_serializer from core.apps.contracts.models.contract import ContractSide from core.apps.contracts.tasks.contract_side import create_contract_side - +from core.apps.shared.utils.response import error_message, success_message class ConstartSideCreateApiView(generics.GenericAPIView): serializer_class = contract_side_serializer.ContractSideCreateSerializer @@ -15,6 +15,6 @@ class ConstartSideCreateApiView(generics.GenericAPIView): if serializer.is_valid(): # TODO: call celery task create_contract_side.delay(serializer.validated_data) - return Response({"success": True, "message": "contract side created"}, status=status.HTTP_201_CREATED) - return Response({"success": False, "message": serializer.errors}, status=status.HTTP_400_BAD_REQUEST) + return success_message("Contract side created", 201) + return error_message(serializer.error_messages, 400) diff --git a/core/apps/contracts/views/contract_signature.py b/core/apps/contracts/views/contract_signature.py index 7355a7e..f79801b 100644 --- a/core/apps/contracts/views/contract_signature.py +++ b/core/apps/contracts/views/contract_signature.py @@ -4,6 +4,7 @@ from rest_framework.response import Response from core.apps.contracts.models.contract import ContractSignature, ContractSignatureCode from core.apps.contracts.serializers.contract_signature import ContractSignatureSerializer from core.apps.contracts.tasks.contract_signature import send_contract_signature_code +from core.apps.shared.utils.response import error_message, success_message class SendContractSignatureCodeApiView(views.APIView): @@ -12,7 +13,7 @@ class SendContractSignatureCodeApiView(views.APIView): def get(self, request, signature_id): # TODO: create and send code with celery in backgroud send_contract_signature_code.delay(signature_id) - return Response({"success": True, "message": "code send"}, status=status.HTTP_200_OK) + return success_message("code send", 200) class SigningContractApiView(generics.GenericAPIView): @@ -40,5 +41,5 @@ class SigningContractApiView(generics.GenericAPIView): contract_signature.status = 'signed' contract_signature.save() contract.save() - return Response({'success': True, 'message': 'contract is signed'}, status=status.HTTP_200_OK) - return Response({'success': False, 'message': serializer.errors}, status=status.HTTP_400_BAD_REQUEST) \ No newline at end of file + return success_message('contract signed', 200) + return error_message(serializer.errors, 400) \ No newline at end of file diff --git a/core/apps/accounts/utils/response.py b/core/apps/shared/utils/response.py similarity index 100% rename from core/apps/accounts/utils/response.py rename to core/apps/shared/utils/response.py