DmitrMakeev commited on
Commit
16ad555
·
verified ·
1 Parent(s): 5cb1d39

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -30
app.py CHANGED
@@ -786,51 +786,35 @@ def update_or_insert_user(db_name, user_data, mapping_template):
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,20 +824,33 @@ def update_or_insert_user(db_name, user_data, mapping_template):
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,20 +859,18 @@ def update_or_insert_user(db_name, user_data, mapping_template):
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,10 +900,9 @@ 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)
@@ -936,7 +930,6 @@ def send_get_request():
936
 
937
 
938
 
939
-
940
 
941
  @app.route('/biz_v', methods=['GET'])
942
  def biz_v():
 
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
  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
  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
 
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)
 
930
 
931
 
932
 
 
933
 
934
  @app.route('/biz_v', methods=['GET'])
935
  def biz_v():