Update app.py
Browse files
app.py
CHANGED
@@ -2026,15 +2026,6 @@ def from_shop_st3():
|
|
2026 |
except Exception as e:
|
2027 |
return json.dumps({"error": str(e)}), 500
|
2028 |
|
2029 |
-
def clean_phone_number_1(phone):
|
2030 |
-
# Пример функции очистки номера телефона
|
2031 |
-
return ''.join(filter(str.isdigit, phone))
|
2032 |
-
|
2033 |
-
def replace_null_with_empty_1(conn):
|
2034 |
-
cursor = conn.cursor()
|
2035 |
-
cursor.execute("UPDATE contacts SET pr5 = '' WHERE pr5 IS NULL")
|
2036 |
-
conn.commit()
|
2037 |
-
|
2038 |
@app.route('/allow', methods=['GET'])
|
2039 |
def from_allow():
|
2040 |
try:
|
@@ -2046,15 +2037,13 @@ def from_allow():
|
|
2046 |
name = request.args.get('name', '')
|
2047 |
email = request.args.get('email', '')
|
2048 |
phone = request.args.get('phone', '').lstrip('+')
|
2049 |
-
module = request.args.get('module', '')
|
2050 |
status = request.args.get('status', '')
|
2051 |
del_flag = request.args.get('del', '')
|
2052 |
-
n_con_flag = request.args.get('n_con', '')
|
2053 |
|
2054 |
if not email or not phone:
|
2055 |
return json.dumps({"error": "Email and phone are required"}), 400
|
2056 |
|
2057 |
-
# Очистка номера телефона
|
2058 |
phone = clean_phone_number_ss(phone)
|
2059 |
|
2060 |
conn = sqlite3.connect(DATABASE6)
|
@@ -2064,79 +2053,43 @@ def from_allow():
|
|
2064 |
result = cursor.fetchone()
|
2065 |
|
2066 |
if result:
|
2067 |
-
# Если есть запись, загружаем текущий JSON из поля pr5
|
2068 |
pr5 = result[23] if result[23] else '{}'
|
2069 |
pr5_data = json.loads(pr5)
|
2070 |
-
print(f"Existing record found. Loaded JSON: {pr5_data}")
|
2071 |
else:
|
2072 |
-
# Если записи нет, создаем пустой словарь
|
2073 |
pr5_data = {}
|
2074 |
-
print("No existing record found. Initialized new JSON.")
|
2075 |
-
|
2076 |
-
# Логирование значений параметров
|
2077 |
-
print(f"Module: {module}")
|
2078 |
-
print(f"Status: {status}")
|
2079 |
-
print(f"Delete Flag: {del_flag}")
|
2080 |
|
2081 |
if del_flag == '1':
|
2082 |
-
|
2083 |
-
if module in pr5_data:
|
2084 |
-
del pr5_data[module]
|
2085 |
-
print(f"Key '{module}' found and deleted from JSON.")
|
2086 |
-
else:
|
2087 |
-
print(f"Key '{module}' not found in JSON.")
|
2088 |
elif module and status:
|
2089 |
-
# Обновление значения существующего ключа или добавление нового
|
2090 |
pr5_data[module] = status
|
2091 |
-
print(f"Updated JSON with key '{module}' and status '{status}'.")
|
2092 |
|
2093 |
pr5_json = json.dumps(pr5_data)
|
2094 |
-
print(f"Updated JSON to be saved: {pr5_json}")
|
2095 |
|
2096 |
-
# Получение текущей даты и времени в Московском часовом поясе
|
2097 |
utc_now = datetime.utcnow()
|
2098 |
msk_tz = pytz.timezone('Europe/Moscow')
|
2099 |
msk_now = utc_now.replace(tzinfo=pytz.utc).astimezone(msk_tz)
|
2100 |
data_on = msk_now.strftime('%Y-%m-%d %H:%M:%S')
|
2101 |
|
2102 |
-
|
2103 |
-
|
2104 |
-
values_to_update = [name, phone, email, pr5_json, n_con_flag, data_on]
|
2105 |
|
2106 |
if result:
|
2107 |
-
# Обновляем только те поля, которые переданы в запросе
|
2108 |
set_clause = ', '.join([f"{col} = ?" for col in columns_to_update])
|
2109 |
query = f"UPDATE contacts SET {set_clause} WHERE email = ? OR phone = ?"
|
2110 |
cursor.execute(query, values_to_update + [email, phone])
|
2111 |
-
print("Record updated in database.")
|
2112 |
else:
|
2113 |
-
# Вставляем новые данные
|
2114 |
query = f"INSERT INTO contacts ({', '.join(columns_to_update)}) VALUES ({', '.join(['?' for _ in columns_to_update])})"
|
2115 |
cursor.execute(query, values_to_update)
|
2116 |
-
print("New record inserted into database.")
|
2117 |
|
2118 |
conn.commit()
|
2119 |
|
2120 |
-
# Проверка что данные сохранились правильно
|
2121 |
-
cursor.execute("SELECT * FROM contacts WHERE email = ? OR phone = ?", (email, phone))
|
2122 |
-
result_check = cursor.fetchone()
|
2123 |
-
if result_check:
|
2124 |
-
pr5_check = result_check[21] if result_check[21] else '{}'
|
2125 |
-
pr5_data_check = json.loads(pr5_check)
|
2126 |
-
print(f"Post-commit check. Loaded JSON: {pr5_data_check}")
|
2127 |
-
else:
|
2128 |
-
print("Post-commit check failed. No record found.")
|
2129 |
-
|
2130 |
-
# Замена NULL на пустые строки
|
2131 |
replace_null_with_empty_string(conn)
|
2132 |
-
print("NULL values replaced with empty strings if any.")
|
2133 |
|
2134 |
conn.close()
|
2135 |
|
2136 |
return json.dumps(pr5_data), 200
|
2137 |
|
2138 |
except Exception as e:
|
2139 |
-
print(f"An error occurred: {str(e)}")
|
2140 |
return json.dumps({"error": str(e)}), 500
|
2141 |
|
2142 |
|
|
|
2026 |
except Exception as e:
|
2027 |
return json.dumps({"error": str(e)}), 500
|
2028 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2029 |
@app.route('/allow', methods=['GET'])
|
2030 |
def from_allow():
|
2031 |
try:
|
|
|
2037 |
name = request.args.get('name', '')
|
2038 |
email = request.args.get('email', '')
|
2039 |
phone = request.args.get('phone', '').lstrip('+')
|
2040 |
+
module = request.args.get('module', '') # Заменяем на "module"
|
2041 |
status = request.args.get('status', '')
|
2042 |
del_flag = request.args.get('del', '')
|
|
|
2043 |
|
2044 |
if not email or not phone:
|
2045 |
return json.dumps({"error": "Email and phone are required"}), 400
|
2046 |
|
|
|
2047 |
phone = clean_phone_number_ss(phone)
|
2048 |
|
2049 |
conn = sqlite3.connect(DATABASE6)
|
|
|
2053 |
result = cursor.fetchone()
|
2054 |
|
2055 |
if result:
|
|
|
2056 |
pr5 = result[23] if result[23] else '{}'
|
2057 |
pr5_data = json.loads(pr5)
|
|
|
2058 |
else:
|
|
|
2059 |
pr5_data = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
2060 |
|
2061 |
if del_flag == '1':
|
2062 |
+
pr5_data = {}
|
|
|
|
|
|
|
|
|
|
|
2063 |
elif module and status:
|
|
|
2064 |
pr5_data[module] = status
|
|
|
2065 |
|
2066 |
pr5_json = json.dumps(pr5_data)
|
|
|
2067 |
|
|
|
2068 |
utc_now = datetime.utcnow()
|
2069 |
msk_tz = pytz.timezone('Europe/Moscow')
|
2070 |
msk_now = utc_now.replace(tzinfo=pytz.utc).astimezone(msk_tz)
|
2071 |
data_on = msk_now.strftime('%Y-%m-%d %H:%M:%S')
|
2072 |
|
2073 |
+
columns_to_update = ['name', 'phone', 'email', 'pr5', 'data_on']
|
2074 |
+
values_to_update = [name, phone, email, pr5_json, data_on]
|
|
|
2075 |
|
2076 |
if result:
|
|
|
2077 |
set_clause = ', '.join([f"{col} = ?" for col in columns_to_update])
|
2078 |
query = f"UPDATE contacts SET {set_clause} WHERE email = ? OR phone = ?"
|
2079 |
cursor.execute(query, values_to_update + [email, phone])
|
|
|
2080 |
else:
|
|
|
2081 |
query = f"INSERT INTO contacts ({', '.join(columns_to_update)}) VALUES ({', '.join(['?' for _ in columns_to_update])})"
|
2082 |
cursor.execute(query, values_to_update)
|
|
|
2083 |
|
2084 |
conn.commit()
|
2085 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2086 |
replace_null_with_empty_string(conn)
|
|
|
2087 |
|
2088 |
conn.close()
|
2089 |
|
2090 |
return json.dumps(pr5_data), 200
|
2091 |
|
2092 |
except Exception as e:
|
|
|
2093 |
return json.dumps({"error": str(e)}), 500
|
2094 |
|
2095 |
|