circular-fix
Some checks failed
Deploy on push / deploy (push) Failing after 17s

This commit is contained in:
2025-08-17 16:33:54 +03:00
parent bc8447a444
commit e78e12eeee
65 changed files with 3304 additions and 1051 deletions

View File

@@ -2,8 +2,9 @@
Админ-резолверы - тонкие GraphQL обёртки над AdminService
"""
import json
import time
from typing import Any, Optional
from typing import Any
from graphql import GraphQLError, GraphQLResolveInfo
from sqlalchemy import and_, case, func, or_
@@ -21,6 +22,7 @@ from resolvers.topic import invalidate_topic_followers_cache, invalidate_topics_
from services.admin import AdminService
from services.common_result import handle_error
from services.db import local_session
from services.rbac import update_all_communities_permissions
from services.redis import redis
from services.schema import mutation, query
from utils.logger import root_logger as logger
@@ -66,7 +68,7 @@ async def admin_get_shouts(
offset: int = 0,
search: str = "",
status: str = "all",
community: Optional[int] = None,
community: int | None = None,
) -> dict[str, Any]:
"""Получает список публикаций"""
try:
@@ -85,7 +87,8 @@ async def admin_update_shout(_: None, info: GraphQLResolveInfo, shout: dict[str,
return {"success": False, "error": "ID публикации не указан"}
shout_input = {k: v for k, v in shout.items() if k != "id"}
result = await update_shout(None, info, shout_id, shout_input)
title = shout_input.get("title")
result = await update_shout(None, info, shout_id, title)
if result.error:
return {"success": False, "error": result.error}
@@ -464,8 +467,6 @@ async def admin_get_roles(_: None, _info: GraphQLResolveInfo, community: int | N
# Если указано сообщество, добавляем кастомные роли из Redis
if community:
import json
custom_roles_data = await redis.execute("HGETALL", f"community:custom_roles:{community}")
for role_id, role_json in custom_roles_data.items():
@@ -841,8 +842,6 @@ async def admin_create_custom_role(_: None, _info: GraphQLResolveInfo, role: dic
}
# Сохраняем роль в Redis
import json
await redis.execute("HSET", f"community:custom_roles:{community_id}", role_id, json.dumps(role_data))
logger.info(f"Создана новая роль {role_id} для сообщества {community_id}")
@@ -887,8 +886,6 @@ async def admin_delete_custom_role(
async def admin_update_permissions(_: None, _info: GraphQLResolveInfo) -> dict[str, Any]:
"""Обновляет права для всех сообществ с новыми дефолтными настройками"""
try:
from services.rbac import update_all_communities_permissions
await update_all_communities_permissions()
logger.info("Права для всех сообществ обновлены")