core-adapter-upgrade
Some checks failed
deploy / deploy (push) Failing after 57s

This commit is contained in:
Untone 2024-04-19 10:47:16 +03:00
parent fe069696d3
commit 1a730a9eab
4 changed files with 31 additions and 47 deletions

View File

@ -1,5 +1,7 @@
[0.3.2]
- added custom logger
- auth logix synced with core
- httpx
[0.3.1]
- glitchtip connect

View File

@ -11,10 +11,10 @@ redis = "^5.0.3"
ariadne = "^0.23.0"
starlette = "^0.37.2"
itsdangerous = "^2.1.2"
aiohttp = "^3.9.3"
requests = "^2.31.0"
granian = "^1.2.1"
colorlog = "^6.8.2"
httpx = "^0.27.0"
[tool.poetry.group.dev.dependencies]
pre-commit = "^3.6.0"

View File

@ -1,7 +1,11 @@
from resolvers.chats import create_chat, delete_chat, update_chat
from resolvers.load import load_chats, load_messages_by
from resolvers.messages import (create_message, delete_message, mark_as_read,
update_message)
from resolvers.messages import (
create_message,
delete_message,
mark_as_read,
update_message,
)
from resolvers.search import search_messages, search_recipients
__all__ = [

View File

@ -1,68 +1,46 @@
import asyncio
import logging
from datetime import datetime, timedelta, timezone
from typing import List
import requests
import json
from models.member import ChatMember
from services.logger import root_logger as logger
from settings import API_BASE
from services.rediscache import redis
logger.setLevel(logging.DEBUG)
def _request_endpoint(query_name, body) -> dict:
logger.debug(f"requesting {query_name}...")
response = requests.post(
API_BASE, headers={"Content-Type": "application/json"}, json=body, timeout=30.0
)
if response.status_code == 200:
try:
r = response.json()
result = r.get("data", {}).get(query_name, {})
if result:
logger.info(f"entries amount in result: {len(result)} ")
return result
except ValueError as e:
logger.error(f"Error decoding JSON response: {e}")
return {}
def get_all_authors():
query_name = "get_authors_all"
authors = []
redis_key = "user:*"
gql = {
"query": "query { " + query_name + "{ id slug pic name user } }",
"variables": None,
}
result = redis.execute("GET", redis_key)
if isinstance(result, str):
authors = json.loads(result)
return _request_endpoint(query_name, gql)
return authors
def get_author_by_user(user: str):
operation = "GetAuthorId"
query_name = "get_author_id"
gql = {
"query": f"query {operation}($user: String!) {{ {query_name}(user: $user){{ id }} }}", # noqa E201, E202
"operationName": operation,
"variables": {"user": user.strip()},
}
author = None
redis_key = f"user:{user}"
return _request_endpoint(query_name, gql)
result = redis.execute("GET", redis_key)
if isinstance(result, str):
author = json.loads(result)
return author
def get_my_followed() -> List[ChatMember]:
query_name = "get_my_followed"
def get_author_followed(author_id: int):
authors = []
redis_key = f"author:{author_id}:follows-authors"
gql = {
"query": "query { " + query_name + " { authors { id slug pic name } } }",
"variables": None,
}
result = redis.execute("GET", redis_key)
if isinstance(result, str):
authors = json.loads(result)
result = _request_endpoint(query_name, gql)
return result.get("authors", [])
return authors
class CacheStorage: