This commit is contained in:
parent
fe069696d3
commit
1a730a9eab
|
@ -1,5 +1,7 @@
|
||||||
[0.3.2]
|
[0.3.2]
|
||||||
- added custom logger
|
- added custom logger
|
||||||
|
- auth logix synced with core
|
||||||
|
- httpx
|
||||||
|
|
||||||
[0.3.1]
|
[0.3.1]
|
||||||
- glitchtip connect
|
- glitchtip connect
|
||||||
|
|
|
@ -11,10 +11,10 @@ redis = "^5.0.3"
|
||||||
ariadne = "^0.23.0"
|
ariadne = "^0.23.0"
|
||||||
starlette = "^0.37.2"
|
starlette = "^0.37.2"
|
||||||
itsdangerous = "^2.1.2"
|
itsdangerous = "^2.1.2"
|
||||||
aiohttp = "^3.9.3"
|
|
||||||
requests = "^2.31.0"
|
requests = "^2.31.0"
|
||||||
granian = "^1.2.1"
|
granian = "^1.2.1"
|
||||||
colorlog = "^6.8.2"
|
colorlog = "^6.8.2"
|
||||||
|
httpx = "^0.27.0"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
pre-commit = "^3.6.0"
|
pre-commit = "^3.6.0"
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
from resolvers.chats import create_chat, delete_chat, update_chat
|
from resolvers.chats import create_chat, delete_chat, update_chat
|
||||||
from resolvers.load import load_chats, load_messages_by
|
from resolvers.load import load_chats, load_messages_by
|
||||||
from resolvers.messages import (create_message, delete_message, mark_as_read,
|
from resolvers.messages import (
|
||||||
update_message)
|
create_message,
|
||||||
|
delete_message,
|
||||||
|
mark_as_read,
|
||||||
|
update_message,
|
||||||
|
)
|
||||||
from resolvers.search import search_messages, search_recipients
|
from resolvers.search import search_messages, search_recipients
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
|
|
@ -1,68 +1,46 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import logging
|
import logging
|
||||||
from datetime import datetime, timedelta, timezone
|
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 services.logger import root_logger as logger
|
||||||
from settings import API_BASE
|
from services.rediscache import redis
|
||||||
|
|
||||||
logger.setLevel(logging.DEBUG)
|
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():
|
def get_all_authors():
|
||||||
query_name = "get_authors_all"
|
authors = []
|
||||||
|
redis_key = "user:*"
|
||||||
|
|
||||||
gql = {
|
result = redis.execute("GET", redis_key)
|
||||||
"query": "query { " + query_name + "{ id slug pic name user } }",
|
if isinstance(result, str):
|
||||||
"variables": None,
|
authors = json.loads(result)
|
||||||
}
|
|
||||||
|
|
||||||
return _request_endpoint(query_name, gql)
|
return authors
|
||||||
|
|
||||||
|
|
||||||
def get_author_by_user(user: str):
|
def get_author_by_user(user: str):
|
||||||
operation = "GetAuthorId"
|
author = None
|
||||||
query_name = "get_author_id"
|
redis_key = f"user:{user}"
|
||||||
gql = {
|
|
||||||
"query": f"query {operation}($user: String!) {{ {query_name}(user: $user){{ id }} }}", # noqa E201, E202
|
|
||||||
"operationName": operation,
|
|
||||||
"variables": {"user": user.strip()},
|
|
||||||
}
|
|
||||||
|
|
||||||
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]:
|
def get_author_followed(author_id: int):
|
||||||
query_name = "get_my_followed"
|
authors = []
|
||||||
|
redis_key = f"author:{author_id}:follows-authors"
|
||||||
|
|
||||||
gql = {
|
result = redis.execute("GET", redis_key)
|
||||||
"query": "query { " + query_name + " { authors { id slug pic name } } }",
|
if isinstance(result, str):
|
||||||
"variables": None,
|
authors = json.loads(result)
|
||||||
}
|
|
||||||
|
|
||||||
result = _request_endpoint(query_name, gql)
|
return authors
|
||||||
return result.get("authors", [])
|
|
||||||
|
|
||||||
|
|
||||||
class CacheStorage:
|
class CacheStorage:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user