71 lines
1.7 KiB
Python
71 lines
1.7 KiB
Python
import requests
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class TechPassportService:
|
|
BASE_URL = "https://api-test.gross.uz/api/v1/osago/check-tech-data"
|
|
|
|
@classmethod
|
|
def get_auto_info(
|
|
cls,
|
|
autonumber: str,
|
|
tech_pass_number: str,
|
|
tech_pass_series: str
|
|
):
|
|
payload = {
|
|
"tech_data": {
|
|
"autonumber": autonumber,
|
|
"tech_pass_number": tech_pass_number,
|
|
"tech_pass_series": tech_pass_series,
|
|
},
|
|
"payload": {
|
|
"promo": "",
|
|
"autotype": 1,
|
|
"citizen": 1,
|
|
"number": 1,
|
|
"period": 1,
|
|
"region": 1,
|
|
"coeff": 1
|
|
}
|
|
}
|
|
|
|
headers = {
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
try:
|
|
response = requests.post(
|
|
cls.BASE_URL,
|
|
json=payload,
|
|
headers=headers,
|
|
timeout=30,
|
|
verify=False
|
|
)
|
|
|
|
logger.info(
|
|
f"Tech passport response status: {response.status_code}"
|
|
)
|
|
|
|
try:
|
|
response_data = response.json()
|
|
except ValueError:
|
|
response_data = {
|
|
"detail": "Invalid response from external service"
|
|
}
|
|
|
|
return {
|
|
"status_code": response.status_code,
|
|
"data": response_data
|
|
}
|
|
|
|
except requests.exceptions.RequestException as e:
|
|
logger.error(str(e))
|
|
|
|
return {
|
|
"status_code": 500,
|
|
"data": {
|
|
"detail": str(e)
|
|
}
|
|
} |