from pymongo import MongoClient from utils.LogCon import setup_logger, load_config class MongoDBRepository: def __init__(self, config_path="config.json"): self.config = load_config() self.client = MongoClient(config["mongodb_uri"]) self.db = self.client[config["database_name"]] self.collection = self.db["vpn_servers"] def add_server(self, server_data): """Добавляет новый VPN сервер в коллекцию.""" result = self.collection.insert_one(server_data) print(f"VPN сервер добавлен с ID: {result.inserted_id}") return result.inserted_id def get_server(self, server_id): """Получает сервер VPN по его ID.""" server = self.collection.find_one({"_id": server_id}) if server: print(f"Найден VPN сервер: {server}") else: print(f"VPN сервер с ID {server_id} не найден.") return server def update_server(self, server_id, update_data): """Обновляет данные VPN сервера.""" result = self.collection.update_one({"_id": server_id}, {"$set": update_data}) if result.matched_count > 0: print(f"VPN сервер с ID {server_id} обновлен.") else: print(f"VPN сервер с ID {server_id} не найден.") return result.matched_count > 0 def delete_server(self, server_id): """Удаляет VPN сервер по его ID.""" result = self.collection.delete_one({"_id": server_id}) if result.deleted_count > 0: print(f"VPN сервер с ID {server_id} удален.") else: print(f"VPN сервер с ID {server_id} не найден.") return result.deleted_count > 0 def list_servers(self): """Возвращает список всех VPN серверов.""" servers = list(self.collection.find()) print(f"Найдено {len(servers)} VPN серверов.") return servers def close_connection(self): """Закрывает подключение к базе данных MongoDB.""" self.client.close() print("Подключение к MongoDB закрыто.")