Update app.py
Browse files
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 |
-
"
|
734 |
-
"
|
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 |
-
|
758 |
-
|
|
|
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 |
-
|
765 |
-
placeholders = ', '.join('?' for _ in
|
766 |
-
insert_query = f"INSERT INTO contacts ({
|
767 |
-
insert_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 |
|