Spaces:
Sleeping
Sleeping
| from flask import request, jsonify | |
| import os | |
| import requests | |
| import globs | |
| api_key = os.getenv('api_key') | |
| base_url = os.getenv('base_url') # URL сервера, например, 'https://api.notisend.ru/v1/email/' | |
| token = os.getenv('token') # Ваш токен | |
| def save_db(): | |
| err = 0 | |
| # Проверяем наличие глобальных переменных и инициализируем их, если они отсутствуют | |
| if not hasattr(globs, 'name'): | |
| globs.name = None | |
| if not hasattr(globs, 'email'): | |
| globs.email = None | |
| if not hasattr(globs, 'phone'): | |
| globs.phone = None | |
| if not hasattr(globs, 'grup_id'): | |
| globs.grup_id = None | |
| if not hasattr(globs, 'pr1'): | |
| globs.pr1 = None | |
| if not hasattr(globs, 'pr2'): | |
| globs.pr2 = None | |
| if not hasattr(globs, 'server_response'): | |
| globs.server_response = None | |
| if api_key == request.args.get('api'): | |
| # Получаем данные из глобальных переменных | |
| names = globs.name | |
| emails = globs.email | |
| phones = globs.phone | |
| grups_id = globs.grup_id # Это List ID | |
| pr1s = globs.pr1 | |
| pr2s = globs.pr2 | |
| # Проверка значений переменных | |
| if not all([names, emails, phones, grups_id, pr1s, pr2s]): | |
| response_data = { | |
| "status": "error", | |
| "err": 0, | |
| "message": "Some required data is missing", | |
| "server_response": None | |
| } | |
| return jsonify(response_data) | |
| # Создаем данные для отправки | |
| data = { | |
| 'list_id': grups_id, | |
| 'email': emails, | |
| 'values': [ | |
| {'value': names, 'parameter_id': 'name'}, | |
| {'value': phones, 'parameter_id': 'phone'}, | |
| {'value': pr1s, 'parameter_id': 'utm1'}, | |
| {'value': pr2s, 'parameter_id': 'utm2'} | |
| ] | |
| } | |
| # Отправляем запрос | |
| headers = { | |
| 'Authorization': f'Bearer {token}', | |
| 'Content-Type': 'application/json' | |
| } | |
| response = requests.post(f"{base_url}lists/{data['list_id']}/recipients", json=data, headers=headers) | |
| # Сохраняем ответ от сервера в глобальную переменную | |
| globs.server_response = response.text | |
| # Проверяем статус ответа | |
| if response.status_code == 200: | |
| err = 1 | |
| response_message = "Operation completed successfully" | |
| else: | |
| response_message = f"Error: {response.status_code} - {response.text}" | |
| err = 0 | |
| else: | |
| response_message = "Invalid API key" | |
| response_data = { | |
| "status": "success" if err == 1 else "error", | |
| "err": err, | |
| "message": response_message, | |
| "server_response": globs.server_response if err == 1 else None | |
| } | |
| return jsonify(response_data) | |