diff --git a/services/search.py b/services/search.py index b096458d..3dde540d 100644 --- a/services/search.py +++ b/services/search.py @@ -40,7 +40,7 @@ index_settings = { "title": {"type": "text", "analyzer": "ru"}, "subtitle": {"type": "text", "analyzer": "ru"}, "lead": {"type": "text", "analyzer": "ru"}, - "media": {"type": "text", "analyzer": "ru"} + "media": {"type": "text", "analyzer": "ru"}, } }, } @@ -138,12 +138,21 @@ class SearchService: result = json.loads(result) if isinstance(result, dict): mapping = result.get(self.index_name, {}).get("mappings") - if mapping and mapping['properties'].keys() != expected_mapping['properties'].keys(): + if ( + mapping + and mapping["properties"].keys() + != expected_mapping["properties"].keys() + ): logger.debug("Найдена структура индексации:") - logger.debug("\n" + json.dumps(mapping, indent=2, ensure_ascii=False)) + logger.debug( + "\n" + json.dumps(mapping, indent=2, ensure_ascii=False) + ) logger.debug("Ожидаемая структура индексации:") - logger.debug("\n" + json.dumps(expected_mapping, indent=2, ensure_ascii=False)) + logger.debug( + "\n" + + json.dumps(expected_mapping, indent=2, ensure_ascii=False) + ) logger.warn( "[!!!] Требуется другая структура индексации и переиндексация всех данных" diff --git a/services/webhook.py b/services/webhook.py index 8f534c39..75db2349 100644 --- a/services/webhook.py +++ b/services/webhook.py @@ -6,8 +6,12 @@ from starlette.exceptions import HTTPException from starlette.requests import Request from starlette.responses import JSONResponse +from sqlalchemy import select + from orm.author import Author from services.db import local_session +from services.cache import cache_author +from resolvers.stat import get_with_stat class WebhookEndpoint(HTTPEndpoint): @@ -56,6 +60,11 @@ class WebhookEndpoint(HTTPEndpoint): author = Author(user=user_id, slug=slug, name=name, pic=pic) session.add(author) session.commit() + [author_with_stat] = get_with_stat( + select(Author).filter(Author.id == author.id) + ) + if author_with_stat: + await cache_author(author_with_stat) return JSONResponse({"status": "success"}) except HTTPException as e: