DmitrMakeev
commited on
Commit
•
4bb0fc3
1
Parent(s):
15e2f41
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 |
|