Files
Telegram-bot-old/dal/db_Mong.py

55 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from pymongo import MongoClient
import json
class VPNServerRepository:
def __init__(self, config_path="config.json"):
with open(config_path, "r") as file:
config = json.load(file)
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 закрыто.")