federation/user/schema/mutation.py
2021-04-18 20:29:23 +02:00

25 lines
717 B
Python

from ariadne import MutationType, convert_kwargs_to_snake_case
from user.models.user import User, UserResponse, UserInput
mutation = MutationType()
def create_user(user_input: UserInput) -> User:
"""Create a user
:param user_input: validated user input object
:return: user newly created
"""
return User(name=user_input.name)
@mutation.field("createUser")
@convert_kwargs_to_snake_case
def resolve_create_user(*_, user_data: dict) -> UserResponse:
try:
user_input = UserInput(name=user_data["name"])
user = create_user(user_input)
return UserResponse(user=user)
except ValueError as error:
return UserResponse(success=False, errorMessage=str(error))