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
)

View File

@@ -44,21 +44,28 @@ class TechPassportService:
verify=False
)
response.raise_for_status()
logger.info(
f"Tech passport info fetched successfully: {response.status_code}"
f"Tech passport response status: {response.status_code}"
)
response_data = response.json()
try:
response_data = response.json()
except ValueError:
response_data = {
"detail": "Invalid response from external service"
}
return response_data.get("data", {})
return {
"status_code": response.status_code,
"data": response_data
}
except requests.exceptions.RequestException as e:
logger.error(
f"Error while fetching tech passport info: {str(e)}"
)
logger.error(str(e))
return {
"success": False,
"message": str(e)
"status_code": 500,
"data": {
"detail": str(e)
}
}