diff --git a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/mutations.py b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/mutations.py index c540c886..5479e2ed 100644 --- a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/mutations.py +++ b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/mutations.py @@ -45,9 +45,9 @@ def validate_email(email): user = graphene.Field(AuthenticatedUser) @classmethod - def mutate_and_get_payload(cls, root, info, **data): - cls.validate_email(data["email"]) - user = user_services.get_and_authenticate_user(**data) + def mutate_and_get_payload(cls, root, info, email, password): + cls.validate_email(email) + user = user_services.get_and_authenticate_user(email, password) return Login(user=user) @@ -59,10 +59,8 @@ class Input: user = graphene.Field(AuthenticatedUser) @classmethod - def mutate_and_get_payload(cls, root, info, **data): + def mutate_and_get_payload(cls, root, info, current_password, new_password): user = info.context.user - current_password = data["current_password"] - new_password = data["new_password"] if not user.check_password(current_password): raise GraphQLError("invalid_password") @@ -93,8 +91,7 @@ def clean_user(cls, email): return user @classmethod - def mutate_and_get_payload(cls, root, info, **data): - email = data["email"] + def mutate_and_get_payload(cls, root, info, email): user = cls.clean_user(email) auth_services.send_password_reset_mail(user) @@ -111,9 +108,7 @@ class Input: message = graphene.String() @classmethod - def mutate_and_get_payload(cls, root, info, **data): - new_password = data["new_password"] - token = data["token"] + def mutate_and_get_payload(cls, root, info, token, new_password): user = tokens.get_user_for_password_reset_token(token) password_validation.validate_password(new_password, user) diff --git a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/schema.py b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/schema.py index cd398e95..8244679f 100644 --- a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/schema.py +++ b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/users/schema.py @@ -1,10 +1,10 @@ import graphene from graphene import relay from graphene_django.filter import DjangoFilterConnectionField + from {{cookiecutter.main_module}}.graphql.decorators import login_required, superuser_required from {{cookiecutter.main_module}}.graphql.utils import filter_objects from {{cookiecutter.main_module}}.users.models import User - from .mutations import ( Login, PasswordChange, @@ -23,7 +23,7 @@ class UserQueries(graphene.ObjectType): users = DjangoFilterConnectionField( UserConnection, description="Return list of all Users" ) - user_details = relay.Node.Field(UserConnection) + user_details = graphene.Field(UserConnection, user_id=graphene.ID()) @login_required def resolve_me(self, info): @@ -36,9 +36,9 @@ def resolve_users(self, info, **kwargs): return qs @superuser_required - def resolve_user_details(self, info, **kwargs): + def resolve_user_details(self, info, user_id): return filter_objects( - User, kwargs['id'] + User, user_id ).first() diff --git a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/utils.py b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/utils.py index cf110d06..e82107ae 100644 --- a/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/utils.py +++ b/{{cookiecutter.github_repository}}/{{cookiecutter.main_module}}/graphql/utils.py @@ -10,7 +10,7 @@ def filter_objects(object_name, relay_ids, otherwise=None): relay_ids = [relay_ids] try: object_ids = [from_global_id(relay_id)[1] for relay_id in relay_ids] - return object_name.filter.with_ids(object_ids) + return object_name.objects.filter(id__in=object_ids) except: # noqa return otherwise