diff --git a/resolvers/__init__.py b/resolvers/__init__.py index 30c469b9..f9c64d4e 100644 --- a/resolvers/__init__.py +++ b/resolvers/__init__.py @@ -2,6 +2,7 @@ from resolvers.editor import create_shout, delete_shout, update_shout from resolvers.author import ( get_author, + get_author_id, load_authors_all, get_author_followers, get_author_followed, @@ -31,6 +32,7 @@ from resolvers.community import get_community, get_communities_all __all__ = [ # author "get_author", + "get_author_id", "load_authors_all", "get_author_followers", "get_author_followed", diff --git a/resolvers/author.py b/resolvers/author.py index f3e52f15..4ee48615 100644 --- a/resolvers/author.py +++ b/resolvers/author.py @@ -161,15 +161,18 @@ async def load_authors_all(_, _info, limit: int = 50, offset: int = 0): return get_authors_from_query(q) +@query.field("get_author_id") +async def get_author_id(_, _info, user: str): + with local_session() as session: + return session.query(Author).where(Author.user == user).first() + + @query.field("get_author") -async def get_author(_, _info, slug="", user=None, author_id=None): +async def get_author(_, _info, slug="", author_id=None): q = None - if slug or user or author_id: + if slug or author_id: if slug != "": q = select(Author).where(Author.slug == slug) - elif user: - q = select(Author).where(Author.user == user) - print(f"[resolvers.author] SQL: {q}") elif author_id: q = select(Author).where(Author.id == author_id) q = add_author_stat_columns(q) diff --git a/schemas/core.graphql b/schemas/core.graphql index f395c970..17e3f64a 100644 --- a/schemas/core.graphql +++ b/schemas/core.graphql @@ -331,7 +331,8 @@ type Mutation { type Query { # author - get_author(slug: String, user: String, author_id: Int): Author + get_author(slug: String, author_id: Int): Author + get_author_id(user: String!): Author load_authors_all(limit: Int, offset: Int): [Author] get_author_followers(slug: String, user: String, author_id: Int): [Author] get_author_followed(slug: String, user: String, author_id: Int): [Author]