fix 2 requests

This commit is contained in:
2025-12-20 12:32:19 +03:00
parent b2b650e2a3
commit d62db6b73a
+8 -4
View File
@@ -13,28 +13,31 @@ def updateMedodsUsers() -> bool:
requestParams = ApiEndpoint.query.filter_by(title="Список докторов").first() requestParams = ApiEndpoint.query.filter_by(title="Список докторов").first()
if not requestParams: if not requestParams:
return False return False
logger.info("Отправка запроса")
response = send_request( response = send_request(
requestParams.method, requestParams.method,
f"{medodsApi.url}{requestParams.url_path}", f"{medodsApi.url}{requestParams.url_path}",
params=requestParams.query_params, params=requestParams.query_params,
) )
if not response: if not response:
logger.error("Ответ не получен")
return False return False
usersFromDB = [] usersFromDB = []
for user in response.json(): for user in response.json():
if user["availabilityForOnlineRecording"] != "available": if user["availabilityForOnlineRecording"] != "available":
continue continue
userDict = { userDict = {
"id": user["id"], "id": int(user["id"]),
"name": f"{user['surname']} {user['name']} {user['secondName']}", "name": f"{user['surname']} {user['name']} {user['secondName']}",
"short_name": f"{user['surname']} {user['name'][:1]}. {user['secondName'][:1]}.", "short_name": f"{user['surname']} {user['name'][:1]}. {user['secondName'][:1]}.",
"sex": user["sex"], "sex": user["sex"],
"step": user["appointmentDuration"], "step": int(user["appointmentDuration"]),
"specialties": [spec["title"] for spec in user["specialties"]], "specialties": [spec["title"] for spec in user["specialties"]],
} }
usersFromDB.append(userDict) usersFromDB.append(userDict)
logger.info(f"Получено {len(usersFromDB)} докторов")
actualUsersIds = [user["id"] for user in usersFromDB] actualUsersIds = [user["id"] for user in usersFromDB]
logger.info(f"{actualUsersIds = }")
allExistingUsers = UsersMedods.query.all() allExistingUsers = UsersMedods.query.all()
for user in allExistingUsers: for user in allExistingUsers:
if user.id not in actualUsersIds: if user.id not in actualUsersIds:
@@ -45,6 +48,7 @@ def updateMedodsUsers() -> bool:
for user in usersFromDB: for user in usersFromDB:
existingUser = UsersMedods.query.filter_by(id=user["id"]).first() existingUser = UsersMedods.query.filter_by(id=user["id"]).first()
if existingUser: if existingUser:
logger.info(f"Обнаружен доктор {user['name']} {user['surname']}")
changes = False changes = False
if existingUser.name != user["name"]: if existingUser.name != user["name"]:
existingUser.name = user["name"] existingUser.name = user["name"]
@@ -61,6 +65,7 @@ def updateMedodsUsers() -> bool:
logger.info(f"Обновлен доктор {user['name']} {user['surname']}") logger.info(f"Обновлен доктор {user['name']} {user['surname']}")
db.session.commit() db.session.commit()
else: else:
logger.info(f"Добавлен доктор {user['name']} {user['surname']}")
newUser = UsersMedods( newUser = UsersMedods(
id=user["id"], id=user["id"],
name=user["name"], name=user["name"],
@@ -71,7 +76,6 @@ def updateMedodsUsers() -> bool:
) )
db.session.add(newUser) db.session.add(newUser)
db.session.commit() db.session.commit()
logger.info(f"Добавлен доктор {user['name']} {user['surname']}")
return True return True
except Exception as e: except Exception as e: