DmitrMakeev commited on
Commit
0628ef1
·
verified ·
1 Parent(s): 16ad555

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -26
app.py CHANGED
@@ -786,35 +786,51 @@ def update_or_insert_user(db_name, user_data, mapping_template):
786
  conn = sqlite3.connect(db_name)
787
  cursor = conn.cursor()
788
 
 
789
  email = user_data.get('email')
790
  if not email:
 
791
  return
792
 
 
 
 
793
  cursor.execute("SELECT web_st FROM contacts WHERE email = ?", (email,))
794
  user = cursor.fetchone()
 
795
 
796
- web_st_value = 1
 
797
  if user:
 
798
  current_web_st = user[0] if user[0] is not None and user[0] != "" else 0
799
  web_st_value = int(current_web_st) + 1
 
800
 
 
801
  cursor.execute("UPDATE contacts SET web_st = ? WHERE email = ?", (web_st_value, email))
802
  conn.commit()
803
  conn.close()
 
804
  else:
805
  conn.close()
 
806
 
 
807
  conn = sqlite3.connect(db_name)
808
  cursor = conn.cursor()
809
 
 
810
  transformed_data = {}
811
  for json_key, db_column in mapping_template.items():
812
  value = user_data.get(json_key, "")
813
  if isinstance(value, list):
814
- transformed_data[db_column] = json.dumps(value) if value else ""
815
  else:
816
  transformed_data[db_column] = str(value)
 
817
 
 
818
  required_fields = [
819
  "vk_id", "chat_id", "ws_st", "ws_stop", "web_st", "fin_prog",
820
  "b_city", "b_fin", "b_ban", "b_ign", "b_baners", "b_butt", "b_mess",
@@ -824,33 +840,20 @@ def update_or_insert_user(db_name, user_data, mapping_template):
824
  for field in required_fields:
825
  if field not in transformed_data:
826
  transformed_data[field] = ""
 
827
 
 
828
  if 'phone' in user_data:
829
  phone = user_data['phone']
830
  if phone.startswith('+'):
831
  phone = phone[1:]
832
  transformed_data['phone'] = phone
 
833
 
 
834
  transformed_data['web_st'] = web_st_value
835
 
836
- # Проверка наличия массива сообщений и установка значения
837
- if 'messages' in user_data and isinstance(user_data['messages'], list):
838
- transformed_data['b_mess'] = json.dumps(user_data['messages'])
839
- else:
840
- transformed_data['b_mess'] = ""
841
-
842
- # Проверка наличия массива баннеров и установка значения
843
- if 'banners' in user_data and isinstance(user_data['banners'], list):
844
- transformed_data['b_baners'] = '1'
845
- else:
846
- transformed_data['b_baners'] = '0'
847
-
848
- # Проверка наличия массива кнопок и установка значения
849
- if 'buttons' in user_data and isinstance(user_data['buttons'], list):
850
- transformed_data['b_butt'] = '1'
851
- else:
852
- transformed_data['b_butt'] = '0'
853
-
854
  if user:
855
  update_query = "UPDATE contacts SET "
856
  update_values = []
@@ -859,18 +862,20 @@ def update_or_insert_user(db_name, user_data, mapping_template):
859
  update_values.append(value)
860
  update_query = update_query.rstrip(", ") + " WHERE email = ?"
861
  update_values.append(email)
 
862
  cursor.execute(update_query, update_values)
863
  else:
864
  columns = ', '.join(transformed_data.keys())
865
  placeholders = ', '.join('?' for _ in transformed_data)
866
  insert_query = f"INSERT INTO contacts ({columns}) VALUES ({placeholders})"
867
  insert_values = list(transformed_data.values())
 
868
  cursor.execute(insert_query, insert_values)
869
 
 
870
  conn.commit()
871
  conn.close()
872
-
873
-
874
 
875
  @app.route('/send_get_request', methods=['GET'])
876
  def send_get_request():
@@ -900,9 +905,10 @@ def send_get_request():
900
 
901
  users_meta = report_json.get('usersMeta', {})
902
 
 
903
  processed_emails = set()
904
  for user_id, user_data in users_meta.items():
905
- user_data['messages'] = messages.get(user_id, [])
906
  email = user_data.get('email')
907
  if email not in processed_emails:
908
  update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
@@ -928,9 +934,6 @@ def send_get_request():
928
 
929
 
930
 
931
-
932
-
933
-
934
  @app.route('/biz_v', methods=['GET'])
935
  def biz_v():
936
  api_sys_control = request.args.get('api_sys')
 
786
  conn = sqlite3.connect(db_name)
787
  cursor = conn.cursor()
788
 
789
+ # Получение email пользователя из данных
790
  email = user_data.get('email')
791
  if not email:
792
+ logging.error(f"User data missing email: {user_data}")
793
  return
794
 
795
+ logging.debug(f"Processing user with email: {email}")
796
+
797
+ # Проверка существования пользователя в базе данных по email
798
  cursor.execute("SELECT web_st FROM contacts WHERE email = ?", (email,))
799
  user = cursor.fetchone()
800
+ logging.debug(f"User found: {user}")
801
 
802
+ # Вынесение увеличения значения web_st в отдельный блок
803
+ web_st_value = 1 # Инициализация значения web_st
804
  if user:
805
+ # Проверка текущего значения web_st и его инкрементация
806
  current_web_st = user[0] if user[0] is not None and user[0] != "" else 0
807
  web_st_value = int(current_web_st) + 1
808
+ logging.debug(f"Calculated web_st_value: {web_st_value}")
809
 
810
+ # Обновление значения web_st
811
  cursor.execute("UPDATE contacts SET web_st = ? WHERE email = ?", (web_st_value, email))
812
  conn.commit()
813
  conn.close()
814
+ logging.debug(f"User {email} web_st updated to {web_st_value}")
815
  else:
816
  conn.close()
817
+ logging.debug(f"User {email} not found, proceeding with insert")
818
 
819
+ # Открываем соединение снова для остальных операций
820
  conn = sqlite3.connect(db_name)
821
  cursor = conn.cursor()
822
 
823
+ # Преобразование данных пользователя на основе шаблона сопоставления
824
  transformed_data = {}
825
  for json_key, db_column in mapping_template.items():
826
  value = user_data.get(json_key, "")
827
  if isinstance(value, list):
828
+ transformed_data[db_column] = "1" if value else "0"
829
  else:
830
  transformed_data[db_column] = str(value)
831
+ logging.debug(f"Transformed data: {transformed_data}")
832
 
833
+ # Заполнение обязательных полей значениями по умолчанию
834
  required_fields = [
835
  "vk_id", "chat_id", "ws_st", "ws_stop", "web_st", "fin_prog",
836
  "b_city", "b_fin", "b_ban", "b_ign", "b_baners", "b_butt", "b_mess",
 
840
  for field in required_fields:
841
  if field not in transformed_data:
842
  transformed_data[field] = ""
843
+ logging.debug(f"Transformed data after adding required fields: {transformed_data}")
844
 
845
+ # Обработка номера телефона, если он есть
846
  if 'phone' in user_data:
847
  phone = user_data['phone']
848
  if phone.startswith('+'):
849
  phone = phone[1:]
850
  transformed_data['phone'] = phone
851
+ logging.debug(f"Transformed data after phone processing: {transformed_data}")
852
 
853
+ # Добавление значения web_st в данные для вставки
854
  transformed_data['web_st'] = web_st_value
855
 
856
+ # Обновление данных пользователя в базе данных
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
857
  if user:
858
  update_query = "UPDATE contacts SET "
859
  update_values = []
 
862
  update_values.append(value)
863
  update_query = update_query.rstrip(", ") + " WHERE email = ?"
864
  update_values.append(email)
865
+ logging.debug(f"Update query: {update_query} with values: {update_values}")
866
  cursor.execute(update_query, update_values)
867
  else:
868
  columns = ', '.join(transformed_data.keys())
869
  placeholders = ', '.join('?' for _ in transformed_data)
870
  insert_query = f"INSERT INTO contacts ({columns}) VALUES ({placeholders})"
871
  insert_values = list(transformed_data.values())
872
+ logging.debug(f"Insert query: {insert_query} with values: {insert_values}")
873
  cursor.execute(insert_query, insert_values)
874
 
875
+ # Подтверждение изменений и закрытие соединения
876
  conn.commit()
877
  conn.close()
878
+ logging.debug(f"User with email {email} processed successfully")
 
879
 
880
  @app.route('/send_get_request', methods=['GET'])
881
  def send_get_request():
 
905
 
906
  users_meta = report_json.get('usersMeta', {})
907
 
908
+ # Обновление или добавление каждого пользователя в базу данных data_gc.db
909
  processed_emails = set()
910
  for user_id, user_data in users_meta.items():
911
+ user_data['messages'] = messages_json
912
  email = user_data.get('email')
913
  if email not in processed_emails:
914
  update_or_insert_user(DATABASE_NAME, user_data, mapping_template)
 
934
 
935
 
936
 
 
 
 
937
  @app.route('/biz_v', methods=['GET'])
938
  def biz_v():
939
  api_sys_control = request.args.get('api_sys')