Update app.py
Browse files
app.py
CHANGED
|
@@ -858,13 +858,15 @@ def update_or_insert_user(db_name, user_data, mapping_template):
|
|
| 858 |
conn.close() # Закрытие соединения с базой данных
|
| 859 |
logging.debug(f"User with email {email} processed successfully") # Логирование успешной обработки пользователя
|
| 860 |
|
| 861 |
-
@app.route('/send_get_request', methods=['GET'])
|
| 862 |
def send_get_request():
|
| 863 |
-
|
| 864 |
-
|
| 865 |
-
|
|
|
|
| 866 |
|
| 867 |
-
|
|
|
|
| 868 |
|
| 869 |
if response.status_code == 200: # Если статус ответа равен 200 (OK)
|
| 870 |
data = response.json() # Получение данных в формате JSON
|
|
@@ -878,7 +880,7 @@ def send_get_request():
|
|
| 878 |
except json.JSONDecodeError:
|
| 879 |
report_json = {} # Установка пустого объекта при ошибке преобразования
|
| 880 |
|
| 881 |
-
messages_json_str = report.get('messages', '
|
| 882 |
try:
|
| 883 |
messages_json = json.loads(messages_json_str) # Преобразование строки JSON в объект
|
| 884 |
except json.JSONDecodeError:
|
|
@@ -888,19 +890,18 @@ def send_get_request():
|
|
| 888 |
|
| 889 |
processed_emails = set() # Создание множества для хранения обработанных email-ов
|
| 890 |
for user_id, user_data in users_meta.items(): # Проход по всем пользователям
|
| 891 |
-
|
| 892 |
-
|
| 893 |
-
|
| 894 |
-
messages_user = [msg for msg in messages_json if msg.get('user_id') == user_id] # Фильтрация сообщений по user_id
|
| 895 |
-
user_data['messages'] = messages_user # Добавление отфильтрованных сообщений в данные пользователя
|
| 896 |
-
update_or_insert_user(DATABASE_NAME, user_data, mapping_template) # Обновление или вставка данных пользователя в базу данных
|
| 897 |
-
processed_emails.add(email) # Добавление email в множество обработанных
|
| 898 |
-
|
| 899 |
-
return jsonify({'status': 'User data saved successfully'}) # Возвращение JSON-ответа с подтверждением успешного сохранения данных
|
| 900 |
-
else:
|
| 901 |
-
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code # Возвращение JSON-ответа с ошибкой и кодом состояния при неудачном запросе
|
| 902 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 903 |
|
|
|
|
|
|
|
|
|
|
| 904 |
|
| 905 |
|
| 906 |
|
|
|
|
| 858 |
conn.close() # Закрытие соединения с базой данных
|
| 859 |
logging.debug(f"User with email {email} processed successfully") # Логирование успешной обработки пользователя
|
| 860 |
|
| 861 |
+
@app.route('/send_get_request', methods=['GET'])
|
| 862 |
def send_get_request():
|
| 863 |
+
# Получение параметров из запроса
|
| 864 |
+
token = request.args.get('token')
|
| 865 |
+
webinarId = request.args.get('webinarId')
|
| 866 |
+
url = f'https://online.bizon365.ru/api/v1/webinars/reports/get?webinarId={webinarId}'
|
| 867 |
|
| 868 |
+
# Отправка GET-запроса к API
|
| 869 |
+
response = requests.get(url, headers={'X-Token': token})
|
| 870 |
|
| 871 |
if response.status_code == 200: # Если статус ответа равен 200 (OK)
|
| 872 |
data = response.json() # Получение данных в формате JSON
|
|
|
|
| 880 |
except json.JSONDecodeError:
|
| 881 |
report_json = {} # Установка пустого объекта при ошибке преобразования
|
| 882 |
|
| 883 |
+
messages_json_str = report.get('messages', '[]') # Получение строки JSON для сообщений
|
| 884 |
try:
|
| 885 |
messages_json = json.loads(messages_json_str) # Преобразование строки JSON в объект
|
| 886 |
except json.JSONDecodeError:
|
|
|
|
| 890 |
|
| 891 |
processed_emails = set() # Создание множества для хранения обработанных email-ов
|
| 892 |
for user_id, user_data in users_meta.items(): # Проход по всем пользователям
|
| 893 |
+
# Извлечение сообщений текущего пользователя
|
| 894 |
+
messages_user = [msg for msg in messages_json if msg.get('user_id') == user_id] # Фильтрация сообщений по user_id
|
| 895 |
+
user_data['messages'] = messages_user # Добавление сообщений пользователя в данные пользователя
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 896 |
|
| 897 |
+
email = user_data.get('email')
|
| 898 |
+
if email and email not in processed_emails:
|
| 899 |
+
update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
|
| 900 |
+
processed_emails.add(email)
|
| 901 |
|
| 902 |
+
return jsonify({'status': 'User data saved successfully'})
|
| 903 |
+
else:
|
| 904 |
+
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
| 905 |
|
| 906 |
|
| 907 |
|