diff --git a/database/schema.py b/database/schema.py index bcae01fc5251cabfd32c9c3d05f5f4a5c884cf14..5f9c8e5adcf50a59c98a95a3b4847775c13e064e 100644 --- a/database/schema.py +++ b/database/schema.py @@ -39,6 +39,20 @@ class Role(SQLAlchemyObjectType): interfaces = (relay.Node, ) +class CreateRole(graphene.Mutation): + class Arguments: + name = graphene.String(required=True) + description = graphene.String(required=False) + + role = graphene.Field(Role) + + def mutate(self, info, name, description=None): + role = user_datastore.create_role(name=name, + description=description) + user_datastore.commit() + return CreateRole(role=role) + + class Query(graphene.ObjectType): node = relay.Node.Field() all_users = SQLAlchemyConnectionField(User) @@ -50,6 +64,7 @@ class Query(graphene.ObjectType): class Mutation(graphene.ObjectType): create_user = UserMutation.Field() + create_role = CreateRole.Field() schema = graphene.Schema(query=Query, types=[User, Role, Application], mutation=Mutation)