DmitrMakeev commited on
Commit
77b9c73
·
verified ·
1 Parent(s): 080dd0d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -51
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
- # Удаление ключа из JSON
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
- # Исключаем все столбцы, кроме name, phone, email, pr5, n_con, data_on
2103
- columns_to_update = ['name', 'phone', 'email', 'pr5', 'n_con', 'data_on']
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