From 4cb328d9d853b65e3a59cee16676adc1dd512b48 Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sat, 7 Nov 2020 21:55:56 +0100 Subject: [PATCH] create user mutation --- app/schema/mutations/__init__.py | 1 + app/schema/mutations/create_user.py | 15 +++++++++++++++ app/schema/mutations/mutations.py | 5 ++++- app/schema/queries/queries.py | 2 +- app/usecases/user/create_user.py | 6 ++++++ 5 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 app/schema/mutations/create_user.py create mode 100644 app/usecases/user/create_user.py diff --git a/app/schema/mutations/__init__.py b/app/schema/mutations/__init__.py index 7cda91d..ad133b0 100644 --- a/app/schema/mutations/__init__.py +++ b/app/schema/mutations/__init__.py @@ -2,3 +2,4 @@ from .close_todo import CloseTodo from .create_todo import CreateTodo from .delete_todo import DeleteTodo from .update_todo import UpdateTodo +from .create_user import CreateUser diff --git a/app/schema/mutations/create_user.py b/app/schema/mutations/create_user.py new file mode 100644 index 0000000..0697c84 --- /dev/null +++ b/app/schema/mutations/create_user.py @@ -0,0 +1,15 @@ +import graphene + +from app.schema.types.user import UserResponseField +from app.usecases.user.create_user import create_user + + +class CreateUser(graphene.Mutation): + class Arguments: + username = graphene.String() + + result = graphene.Field(UserResponseField) + + def mutate(self, info, username: str): + user = create_user(username) + return CreateUser(UserResponseField(user=user)) diff --git a/app/schema/mutations/mutations.py b/app/schema/mutations/mutations.py index 3a92415..8b93b4c 100644 --- a/app/schema/mutations/mutations.py +++ b/app/schema/mutations/mutations.py @@ -1,10 +1,13 @@ import graphene -from . import CreateTodo, DeleteTodo, UpdateTodo, CloseTodo +from . import CreateTodo, DeleteTodo, UpdateTodo, CloseTodo, CreateUser class Mutations(graphene.ObjectType): + # todos create_todo = CreateTodo.Field() update_todo = UpdateTodo.Field() delete_todo = DeleteTodo.Field() close_todo = CloseTodo.Field() + # user + create_user = CreateUser.Field() diff --git a/app/schema/queries/queries.py b/app/schema/queries/queries.py index 7915100..c5c759b 100644 --- a/app/schema/queries/queries.py +++ b/app/schema/queries/queries.py @@ -1,8 +1,8 @@ import graphene -from app.schema.types.todo import TodoListResponseField, TodoResponseField from .todo import resolve_get_todo, resolve_list_todos from .user import resolve_list_users, resolve_get_user +from ..types.todo import TodoListResponseField, TodoResponseField from ..types.user import UserListResponseField, UserResponseField diff --git a/app/usecases/user/create_user.py b/app/usecases/user/create_user.py new file mode 100644 index 0000000..c25b945 --- /dev/null +++ b/app/usecases/user/create_user.py @@ -0,0 +1,6 @@ +from app.models.user import User +from app.repositories.users import add_user + + +def create_user(username: str) -> User: + return add_user(username)