diff --git a/resolvers/auth.py b/resolvers/auth.py index 42fe2877..bebd7c56 100644 --- a/resolvers/auth.py +++ b/resolvers/auth.py @@ -11,16 +11,27 @@ from resolvers.base import mutation, query from settings import JWT_AUTH_HEADER +@mutation.field("confirmEmail") +async def confirm(*_, token): + token = await Authorize.authorize(user) + return { "status": True, "token": token } + @mutation.field("registerUser") -async def register(*_, email: str, password: str) -> User: +async def register(*_, email: str, password: str): inp = { "email": email, "password": password} create_user = CreateUser(**inp) create_user.password = Password.encode(create_user.password) create_user.username = email.split('@')[0] user = User.create(**create_user.dict()) - # if not password: # TODO: send confirmation email - token = await Authorize.authorize(user) - return {"status": True, "user": user, "token": token } + if not password: + # sendAuthEmail(]token) + # TODO: User.password === None and User.emailConfirmed = залогиненный пользователь + # без пароля не возвращаем, а высылаем токен на почту + # + return { "status": True, "user": user } + else: + token = await Authorize.authorize(user) + return {"status": True, "user": user, "token": token } @query.field("signIn") diff --git a/schema.graphql b/schema.graphql index dbbaf5ce..bcb71caf 100644 --- a/schema.graphql +++ b/schema.graphql @@ -20,12 +20,12 @@ type Mutation { deleteMessage(messageId: Int!): ResultPayload! # auth - resetPassword(password: String!, token: String!): Token! - confirmEmail(token: String!): Token! - invalidateAllTokens: Boolean! - invalidateTokenById(id: Int!): Boolean! - requestEmailConfirmation: User! - requestPasswordReset(email: String!): Boolean! + # resetPassword(password: String!, token: String!): Token! + confirmEmail(token: String!): ResultPayload! + # invalidateAllTokens: Boolean! + # invalidateTokenById(id: Int!): Boolean! + # requestEmailConfirmation: User! + # requestPasswordReset(email: String!): Boolean! registerUser(email: String!, password: String!): ResultPayload! # shout @@ -34,9 +34,9 @@ type Mutation { rateShout(value: Int!): ResultPayload! # profile - rateUser(value: Int!): ResultPayload! - updateOnlineStatus: ResultPayload! - updateUsername(username: String!): ResultPayload! + # rateUser(value: Int!): ResultPayload! + # updateOnlineStatus: ResultPayload! + # updateUsername(username: String!): ResultPayload! } ################################### Query @@ -47,22 +47,22 @@ type Query { signIn(email: String!, password: String!): ResultPayload! signOut: ResultPayload! getCurrentUser: ResultPayload! - getUserById(id: Int!): ResultPayload! - getUserRating(shout: Int): Int! + # getUserById(id: Int!): ResultPayload! + # getUserRating(shout: Int): Int! # messages getMessages(count: Int = 100, page: Int = 1): [Message!]! # shouts - getShoutRating(shout: Int): Int! - shoutsByAuthor(author: Int): [Shout]! - shoutsByReplyTo(shout: Int): [Shout]! - shoutsByTags(tags: [String]): [Shout]! - shoutsByTime(time: DateTime): [Shout]! + # getShoutRating(shout: Int): Int! + # shoutsByAuthor(author: Int): [Shout]! + # shoutsByReplyTo(shout: Int): [Shout]! + # shoutsByTags(tags: [String]): [Shout]! + # shoutsByTime(time: DateTime): [Shout]! - getOnlineUsers: [User!]! - topAuthors: [User]! - topShouts: [Shout]! + # getOnlineUsers: [User!]! + # topAuthors: [User]! + # topShouts: [Shout]! } ############################################ Subscription