fix: handle response errors and improve data return in TechPassportService

This commit is contained in:
komoliddin
2026-04-22 11:17:09 +05:00
parent cb2d83b00d
commit 33aa06f80b
2 changed files with 37 additions and 21 deletions

View File

@@ -33,18 +33,27 @@ class TechPassportAPIView(GenericAPIView):
def post(self, request, *args, **kwargs):
serializer = TechPassportSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
data = serializer.validated_data
try:
result = TechPassportService.get_auto_info(
autonumber=data["autonumber"],
tech_pass_number=data["tech_pass_number"],
tech_pass_series=data["tech_pass_series"],
)
return Response(result, status=status.HTTP_200_OK)
result = TechPassportService.get_auto_info(
autonumber=data["autonumber"],
tech_pass_number=data["tech_pass_number"],
tech_pass_series=data["tech_pass_series"],
)
except Exception as e:
response_data = result["data"]
status_code = result["status_code"]
# success bolsa faqat data ichidagi data qaytariladi
if status_code == 200:
return Response(
{"detail": str(e)},
status=status.HTTP_400_BAD_REQUEST
)
response_data.get("data", {}),
status=status.HTTP_200_OK
)
# error bolsa original response qaytariladi
return Response(
response_data,
status=status_code
)