add delete user mutation

This commit is contained in:
Ruidy 2020-11-07 22:34:00 +01:00
parent d9018897b5
commit cef01bdb89
4 changed files with 42 additions and 1 deletions

View file

@ -4,3 +4,4 @@ from .delete_todo import DeleteTodo
from .update_todo import UpdateTodo
from .create_user import CreateUser
from .update_user import UpdateUser
from .delete_user import DeleteUser

View file

@ -0,0 +1,20 @@
import graphene
from app.schema.types.user import UserResponseField
from app.usecases.user.delete_user import delete_user
class DeleteUser(graphene.Mutation):
class Arguments:
user_id = graphene.String(required=True)
result = graphene.Field(UserResponseField)
def mutate(self, info, user_id: str):
user, is_success = delete_user(user_id)
error_message = "This user does not exist." if not is_success else None
return DeleteUser(
UserResponseField(
user=user, is_success=is_success, error_message=error_message
)
)

View file

@ -1,6 +1,14 @@
import graphene
from . import CreateTodo, DeleteTodo, UpdateTodo, CloseTodo, CreateUser, UpdateUser
from . import (
CreateTodo,
DeleteTodo,
UpdateTodo,
CloseTodo,
CreateUser,
UpdateUser,
DeleteUser,
)
class Mutations(graphene.ObjectType):
@ -12,3 +20,4 @@ class Mutations(graphene.ObjectType):
# user
create_user = CreateUser.Field()
update_user = UpdateUser.Field()
delete_user = DeleteUser.Field()

View file

@ -0,0 +1,11 @@
from typing import Tuple
from app.models.user import User
from app.repositories.users import user_exists, remove_user
def delete_user(user_id: str) -> Tuple[User, bool]:
if not user_exists(user_id):
return None, False
return remove_user(user_id), True