fix quality code
This commit is contained in:
@@ -6,10 +6,10 @@ from database.models import BlacklistUser
|
||||
|
||||
class BlacklistRepository(DatabaseConnection):
|
||||
"""Репозиторий для работы с черным списком."""
|
||||
|
||||
|
||||
async def create_tables(self):
|
||||
"""Создание таблицы черного списка."""
|
||||
query = '''
|
||||
query = """
|
||||
CREATE TABLE IF NOT EXISTS blacklist (
|
||||
user_id INTEGER NOT NULL PRIMARY KEY,
|
||||
message_for_user TEXT,
|
||||
@@ -19,10 +19,10 @@ class BlacklistRepository(DatabaseConnection):
|
||||
FOREIGN KEY (user_id) REFERENCES our_users (user_id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (ban_author) REFERENCES our_users (user_id) ON DELETE SET NULL
|
||||
)
|
||||
'''
|
||||
"""
|
||||
await self._execute_query(query)
|
||||
self.logger.info("Таблица черного списка создана")
|
||||
|
||||
|
||||
async def add_user(self, blacklist_user: BlacklistUser) -> None:
|
||||
"""Добавляет пользователя в черный список."""
|
||||
query = """
|
||||
@@ -35,29 +35,35 @@ class BlacklistRepository(DatabaseConnection):
|
||||
blacklist_user.date_to_unban,
|
||||
blacklist_user.ban_author,
|
||||
)
|
||||
|
||||
|
||||
await self._execute_query(query, params)
|
||||
self.logger.info(f"Пользователь добавлен в черный список: user_id={blacklist_user.user_id}")
|
||||
|
||||
self.logger.info(
|
||||
f"Пользователь добавлен в черный список: user_id={blacklist_user.user_id}"
|
||||
)
|
||||
|
||||
async def remove_user(self, user_id: int) -> bool:
|
||||
"""Удаляет пользователя из черного списка."""
|
||||
try:
|
||||
query = "DELETE FROM blacklist WHERE user_id = ?"
|
||||
await self._execute_query(query, (user_id,))
|
||||
self.logger.info(f"Пользователь с идентификатором {user_id} успешно удален из черного списка.")
|
||||
self.logger.info(
|
||||
f"Пользователь с идентификатором {user_id} успешно удален из черного списка."
|
||||
)
|
||||
return True
|
||||
except Exception as e:
|
||||
self.logger.error(f"Ошибка удаления пользователя с идентификатором {user_id} "
|
||||
f"из таблицы blacklist. Ошибка: {str(e)}")
|
||||
self.logger.error(
|
||||
f"Ошибка удаления пользователя с идентификатором {user_id} "
|
||||
f"из таблицы blacklist. Ошибка: {str(e)}"
|
||||
)
|
||||
return False
|
||||
|
||||
|
||||
async def user_exists(self, user_id: int) -> bool:
|
||||
"""Проверяет, существует ли запись с данным user_id в blacklist."""
|
||||
query = "SELECT 1 FROM blacklist WHERE user_id = ?"
|
||||
rows = await self._execute_query_with_result(query, (user_id,))
|
||||
self.logger.info(f"Существует ли пользователь: user_id={user_id} Итог: {rows}")
|
||||
return bool(rows)
|
||||
|
||||
|
||||
async def get_user(self, user_id: int) -> Optional[BlacklistUser]:
|
||||
"""Возвращает информацию о пользователе в черном списке по user_id."""
|
||||
query = """
|
||||
@@ -67,7 +73,7 @@ class BlacklistRepository(DatabaseConnection):
|
||||
"""
|
||||
rows = await self._execute_query_with_result(query, (user_id,))
|
||||
row = rows[0] if rows else None
|
||||
|
||||
|
||||
if row:
|
||||
return BlacklistUser(
|
||||
user_id=row[0],
|
||||
@@ -77,8 +83,10 @@ class BlacklistRepository(DatabaseConnection):
|
||||
ban_author=row[4] if len(row) > 4 else None,
|
||||
)
|
||||
return None
|
||||
|
||||
async def get_all_users(self, offset: int = 0, limit: int = 10) -> List[BlacklistUser]:
|
||||
|
||||
async def get_all_users(
|
||||
self, offset: int = 0, limit: int = 10
|
||||
) -> List[BlacklistUser]:
|
||||
"""Возвращает список пользователей в черном списке."""
|
||||
query = """
|
||||
SELECT user_id, message_for_user, date_to_unban, created_at, ban_author
|
||||
@@ -86,7 +94,7 @@ class BlacklistRepository(DatabaseConnection):
|
||||
LIMIT ?, ?
|
||||
"""
|
||||
rows = await self._execute_query_with_result(query, (offset, limit))
|
||||
|
||||
|
||||
users = []
|
||||
for row in rows:
|
||||
users.append(
|
||||
@@ -98,10 +106,12 @@ class BlacklistRepository(DatabaseConnection):
|
||||
ban_author=row[4] if len(row) > 4 else None,
|
||||
)
|
||||
)
|
||||
|
||||
self.logger.info(f"Получен список пользователей в черном списке (offset={offset}, limit={limit}): {len(users)}")
|
||||
|
||||
self.logger.info(
|
||||
f"Получен список пользователей в черном списке (offset={offset}, limit={limit}): {len(users)}"
|
||||
)
|
||||
return users
|
||||
|
||||
|
||||
async def get_all_users_no_limit(self) -> List[BlacklistUser]:
|
||||
"""Возвращает список всех пользователей в черном списке без лимитов."""
|
||||
query = """
|
||||
@@ -109,7 +119,7 @@ class BlacklistRepository(DatabaseConnection):
|
||||
FROM blacklist
|
||||
"""
|
||||
rows = await self._execute_query_with_result(query)
|
||||
|
||||
|
||||
users = []
|
||||
for row in rows:
|
||||
users.append(
|
||||
@@ -121,19 +131,23 @@ class BlacklistRepository(DatabaseConnection):
|
||||
ban_author=row[4] if len(row) > 4 else None,
|
||||
)
|
||||
)
|
||||
|
||||
self.logger.info(f"Получен список всех пользователей в черном списке: {len(users)}")
|
||||
|
||||
self.logger.info(
|
||||
f"Получен список всех пользователей в черном списке: {len(users)}"
|
||||
)
|
||||
return users
|
||||
|
||||
async def get_users_for_unblock_today(self, current_timestamp: int) -> Dict[int, int]:
|
||||
|
||||
async def get_users_for_unblock_today(
|
||||
self, current_timestamp: int
|
||||
) -> Dict[int, int]:
|
||||
"""Возвращает список пользователей, у которых истек срок блокировки."""
|
||||
query = "SELECT user_id FROM blacklist WHERE date_to_unban IS NOT NULL AND date_to_unban <= ?"
|
||||
rows = await self._execute_query_with_result(query, (current_timestamp,))
|
||||
|
||||
|
||||
users = {user_id: user_id for user_id, in rows}
|
||||
self.logger.info(f"Получен список пользователей для разблокировки: {users}")
|
||||
return users
|
||||
|
||||
|
||||
async def get_count(self) -> int:
|
||||
"""Получение количества пользователей в черном списке."""
|
||||
query = "SELECT COUNT(*) FROM blacklist"
|
||||
|
||||
Reference in New Issue
Block a user