return user info in signIn

This commit is contained in:
knst-kotov 2022-05-03 15:55:29 +03:00
parent d7cbe150d6
commit 0d67d1df95
3 changed files with 21 additions and 6 deletions

View File

@ -11,6 +11,7 @@ from auth.email import send_confirm_email, send_auth_email, send_reset_password_
from orm import User, UserStorage, Role, UserRole from orm import User, UserStorage, Role, UserRole
from orm.base import local_session from orm.base import local_session
from resolvers.base import mutation, query from resolvers.base import mutation, query
from resolvers.profile import get_user_info
from exceptions import InvalidPassword, InvalidToken from exceptions import InvalidPassword, InvalidToken
from settings import JWT_AUTH_HEADER from settings import JWT_AUTH_HEADER
@ -108,7 +109,12 @@ async def login(_, info: GraphQLResolveInfo, email: str, password: str = ""):
token = await Authorize.authorize(user, device=device, auto_delete=auto_delete) token = await Authorize.authorize(user, device=device, auto_delete=auto_delete)
print(f"signIn {email}: OK") print(f"signIn {email}: OK")
return {"token" : token, "user": orm_user}
return {
"token" : token,
"user": orm_user,
"info": await get_user_info(orm_user.slug)
}
@query.field("signOut") @query.field("signOut")

View File

@ -21,15 +21,19 @@ def _get_user_subscribed_topic_slugs(slug):
slugs = [row.slug for row in rows] slugs = [row.slug for row in rows]
return slugs return slugs
async def get_user_info(slug):
return {
"totalUnreadMessages" : await get_total_unread_messages_for_user(slug),
"userSubscribedTopics": _get_user_subscribed_topic_slugs(slug)
}
@query.field("getCurrentUser") @query.field("getCurrentUser")
@login_required @login_required
async def get_current_user(_, info): async def get_current_user(_, info):
user = info.context["request"].user user = info.context["request"].user
total_unread_messages = await get_total_unread_messages_for_user(user.slug)
return { return {
"user": user, "user": user,
"totalUnreadMessages": total_unread_messages, "info": await get_user_info(user.slug)
"userSubscribedTopics": _get_user_subscribed_topic_slugs(user.slug)
} }
@query.field("getUsersBySlugs") @query.field("getUsersBySlugs")

View File

@ -6,17 +6,22 @@ type Result {
error: String error: String
} }
type CurrentUserInfo {
totalUnreadMessages: Int
userSubscribedTopics: [String]!
}
type AuthResult { type AuthResult {
error: String error: String
token: String token: String
user: User user: User
info: CurrentUserInfo
} }
type UserResult { type UserResult {
error: String error: String
user: User user: User
totalUnreadMessages: Int info: CurrentUserInfo
userSubscribedTopics: [String]!
} }
input ShoutInput { input ShoutInput {