custom-encoder-fix
This commit is contained in:
@@ -13,6 +13,7 @@ from resolvers.stat import get_with_stat, author_follows_authors, author_follows
|
||||
from services.cache import set_author_cache, update_author_followers_cache
|
||||
from services.auth import login_required
|
||||
from services.db import local_session
|
||||
from services.encoders import CustomJSONEncoder
|
||||
from services.rediscache import redis
|
||||
from services.schema import mutation, query
|
||||
from services.logger import root_logger as logger
|
||||
@@ -161,14 +162,14 @@ async def get_author_follows(_, _info, slug='', user=None, author_id=None):
|
||||
)
|
||||
if not cached:
|
||||
prepared = [author.dict() for author in authors]
|
||||
await redis.execute('SETEX', rkey, 24 * 60 * 60, json.dumps(prepared))
|
||||
await redis.execute('SET', rkey, 24 * 60 * 60, json.dumps(prepared), cls=CustomJSONEncoder)
|
||||
|
||||
rkey = f'author:{author_id}:follows-topics'
|
||||
cached = await redis.execute('GET', rkey)
|
||||
topics = json.loads(cached) if cached else author_follows_topics(author_id)
|
||||
if not cached:
|
||||
prepared = [topic.dict() for topic in topics]
|
||||
await redis.execute('SETEX', rkey, 24 * 60 * 60, json.dumps(prepared))
|
||||
await redis.execute('SET', rkey, 24 * 60 * 60, json.dumps(prepared), cls=CustomJSONEncoder)
|
||||
return {
|
||||
'topics': topics,
|
||||
'authors': authors,
|
||||
@@ -197,7 +198,7 @@ async def get_author_follows_topics(_, _info, slug='', user=None, author_id=None
|
||||
topics = json.loads(cached) if cached else author_follows_topics(author_id)
|
||||
if not cached:
|
||||
prepared = [topic.dict() for topic in topics]
|
||||
await redis.execute('SETEX', rkey, 24 * 60 * 60, json.dumps(prepared))
|
||||
await redis.execute('SET', rkey, 24 * 60 * 60, json.dumps(prepared), cls=CustomJSONEncoder)
|
||||
return topics
|
||||
else:
|
||||
raise ValueError('Author not found')
|
||||
@@ -222,7 +223,7 @@ async def get_author_follows_authors(_, _info, slug='', user=None, author_id=Non
|
||||
)
|
||||
if not cached:
|
||||
prepared = [author.dict() for author in authors]
|
||||
await redis.execute('SETEX', rkey, 24 * 60 * 60, json.dumps(prepared))
|
||||
await redis.execute('SET', rkey, 24 * 60 * 60, json.dumps(prepared), cls=CustomJSONEncoder)
|
||||
return authors
|
||||
else:
|
||||
raise ValueError('Author not found')
|
||||
|
Reference in New Issue
Block a user