Лучший способ сделать операцию удаления с GraphQL + графен - PullRequest
0 голосов
/ 03 декабря 2018

Я изо всех сил пытаюсь заставить мою операцию Удалить работать.Мои Create, Read и Update работают нормально, но Delete ничего не может вернуть.

class DeleteEmployeeInput(graphene.InputObjectType):
    """Arguments to delete an employee."""
    id = graphene.ID(required=True, description="Global Id of the employee.")


class DeleteEmployee(graphene.Mutation):
    """Delete an employee."""
    employee = graphene.Field(
        lambda: Employee, description="Employee deleted by this mutation.")

    class Arguments:
        input = DeleteEmployeeInput(required=True)

    def mutate(self, info, input):
        data = utils.input_to_dictionary(input)
        #data['edited'] = datetime.utcnow()

        employee = db_session.query(
            EmployeeModel).filter_by(id=data['id'])
        employee.delete(data['id'])
        db_session.commit()
        #employee = db_session.query(
            #EmployeeModel).filter_by(id=data['id']).first()

        #return DeleteEmployee(employee=employee)

Каков наилучший способ удалить запись?Я предполагаю, что должен вернуть OK или Ошибка.

Когда я запускаю свою мутацию:

mutation {
  deleteEmployee (input: {
       id: "RW1wbG95ZWU6MQ=="
  }) 
}

Я получаю ошибку Field \"deleteEmployee\" of type \"DeleteEmployee\" must have a sub selection."

Обратите внимание на закомментированныйлинии

1 Ответ

0 голосов
/ 03 декабря 2018

Попробуйте заменить employee = graphene.Field... на ok = graphene.Boolean(), а затем сделайте последнюю строку вашего метода мутирования return DeleteEmployee(ok=True)

...