DmitrMakeev commited on
Commit
1ce1005
·
verified ·
1 Parent(s): f45fa96

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -710,6 +710,10 @@ def update_or_insert_user(db_name, user_data, mapping_template):
710
  conn = sqlite3.connect(db_name)
711
  cursor = conn.cursor()
712
 
 
 
 
 
713
  # Преобразование данных пользователя на основе шаблона сопоставления
714
  transformed_data = {}
715
  for json_key, db_column in mapping_template.items():
@@ -728,10 +732,10 @@ def update_or_insert_user(db_name, user_data, mapping_template):
728
 
729
  # Заполнение обязательных полей значениями по умолчанию
730
  required_fields = [
731
- "vk_id", "chat_id", "ws_st", "ws_stop", "web_st", "fin_prog",
732
- "b_city", "b_fin", "b_ban", "b_ign", "b_baners", "b_butt", "b_mess",
733
- "shop_st", "curator", "pr1", "pr2", "pr3", "pr4", "pr5", "ad_url",
734
- "key_pr", "n_con", "canal", "data_t", 'utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content'
735
  ]
736
  for field in required_fields:
737
  if field not in transformed_data:
@@ -754,17 +758,18 @@ def update_or_insert_user(db_name, user_data, mapping_template):
754
  update_query = "UPDATE contacts SET "
755
  update_values = []
756
  for column, value in transformed_data.items():
757
- update_query += f"{column} = ?, "
758
- update_values.append(value)
 
759
  update_query = update_query.rstrip(", ") + " WHERE email = ?"
760
  update_values.append(email)
761
  logging.debug(f"Update query: {update_query} with values: {update_values}")
762
  cursor.execute(update_query, update_values)
763
  else:
764
- columns = ', '.join(transformed_data.keys())
765
- placeholders = ', '.join('?' for _ in transformed_data)
766
- insert_query = f"INSERT INTO contacts ({columns}) VALUES ({placeholders})"
767
- insert_values = list(transformed_data.values())
768
  logging.debug(f"Insert query: {insert_query} with values: {insert_values}")
769
  cursor.execute(insert_query, insert_values)
770
 
 
710
  conn = sqlite3.connect(db_name)
711
  cursor = conn.cursor()
712
 
713
+ # Получение списка столбцов из таблицы
714
+ cursor.execute("PRAGMA table_info(contacts)")
715
+ columns = [column[1] for column in cursor.fetchall()]
716
+
717
  # Преобразование данных пользователя на основе шаблона сопоставления
718
  transformed_data = {}
719
  for json_key, db_column in mapping_template.items():
 
732
 
733
  # Заполнение обязательных полей значениями по умолчанию
734
  required_fields = [
735
+ "id", "name", "phone", "email", "vk_id", "chat_id", "ws_st", "ws_stop", "web_st", "fin_prog",
736
+ "b_city", "b_fin", "b_ban", "b_ign", "b_baners", "b_butt", "b_mess", "shop_st", "curator",
737
+ "pr1", "pr2", "pr3", "pr4", "pr5", "gc_url", "key_pr", "n_con", "canal", "data_on", "data_t",
738
+ "utm_source", "utm_medium", "utm_campaign", "utm_term", "utm_content", "gcpc"
739
  ]
740
  for field in required_fields:
741
  if field not in transformed_data:
 
758
  update_query = "UPDATE contacts SET "
759
  update_values = []
760
  for column, value in transformed_data.items():
761
+ if column in columns:
762
+ update_query += f"{column} = ?, "
763
+ update_values.append(value)
764
  update_query = update_query.rstrip(", ") + " WHERE email = ?"
765
  update_values.append(email)
766
  logging.debug(f"Update query: {update_query} with values: {update_values}")
767
  cursor.execute(update_query, update_values)
768
  else:
769
+ insert_columns = [column for column in transformed_data.keys() if column in columns]
770
+ placeholders = ', '.join('?' for _ in insert_columns)
771
+ insert_query = f"INSERT INTO contacts ({', '.join(insert_columns)}) VALUES ({placeholders})"
772
+ insert_values = [transformed_data[column] for column in insert_columns]
773
  logging.debug(f"Insert query: {insert_query} with values: {insert_values}")
774
  cursor.execute(insert_query, insert_values)
775