Update app.py
Browse files
app.py
CHANGED
@@ -935,6 +935,53 @@ def send_get_request():
|
|
935 |
|
936 |
|
937 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
938 |
|
939 |
|
940 |
|
|
|
935 |
|
936 |
|
937 |
|
938 |
+
@app.route('/webhookbz', methods=['POST'])
|
939 |
+
def data_gc_tab():
|
940 |
+
api_sys_control = request.args.get('api_sys')
|
941 |
+
if api_sys_control != api_key_sys:
|
942 |
+
return "EUR 22", 200
|
943 |
+
|
944 |
+
data = request.json
|
945 |
+
webinar_id = data.get('webinarId')
|
946 |
+
|
947 |
+
if not webinar_id:
|
948 |
+
return jsonify({'error': 'webinarId is required'}), 400
|
949 |
+
|
950 |
+
url = f'https://online.bizon365.ru/api/v1/webinars/reports/get?webinarId={webinar_id}'
|
951 |
+
response = requests.get(url, headers={'X-Token': api_key_sys})
|
952 |
+
|
953 |
+
if response.status_code == 200:
|
954 |
+
data = response.json()
|
955 |
+
|
956 |
+
report = data.get('report', {})
|
957 |
+
messages = data.get('messages', {})
|
958 |
+
|
959 |
+
report_json_str = report.get('report', '{}')
|
960 |
+
try:
|
961 |
+
report_json = json.loads(report_json_str)
|
962 |
+
except json.JSONDecodeError:
|
963 |
+
report_json = {}
|
964 |
+
|
965 |
+
messages_json_str = report.get('messages', '{}')
|
966 |
+
try:
|
967 |
+
messages_json = json.loads(messages_json_str)
|
968 |
+
except json.JSONDecodeError:
|
969 |
+
messages_json = {}
|
970 |
+
|
971 |
+
users_meta = report_json.get('usersMeta', {})
|
972 |
+
|
973 |
+
processed_emails = set()
|
974 |
+
for user_id, user_data in users_meta.items():
|
975 |
+
user_messages = messages_json.get(user_id, [])
|
976 |
+
user_data['messages'] = user_messages
|
977 |
+
email = user_data.get('email')
|
978 |
+
if email and email not in processed_emails:
|
979 |
+
update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
|
980 |
+
processed_emails.add(email)
|
981 |
+
|
982 |
+
return jsonify({'status': 'User data saved successfully'})
|
983 |
+
else:
|
984 |
+
return jsonify({'error': 'Failed to fetch data from the API'}), response.status_code
|
985 |
|
986 |
|
987 |
|