Как отправить массив объектов с мутацией graphql - PullRequest
2 голосов
/ 20 мая 2019

У меня есть мутация grapgql следующим образом:

const RESET_PASSWORD = gql`
mutation ResetPassword($input: [ResetPasswordInput]!) {
    resetPassword(input: $input) {
        ok
    }
  }
`;

И функция, которая должна выполнить мутацию, выглядит следующим образом:

resetPassword() {
        const {mutation, onClose, users} = this.props;
        mutation.mutate({
            variables: {
                input: users
            }
        }, (result) => {
            if (result.success) {
                onClose()
            }
        })
    }

Я хочу отправить массив пользовательских объектовк бэкэнду.Массив выглядит следующим образом:

users = [
    {
        company_id: "14",
        company_user_id: "10313",
        email: "some_email@ehotmail.com",
        state: "APPROVED",
        token: "5aaa0cd6caac022cf0829860abc42e955ab4c65b",
        user_id: "21591"
    },
    {
        company_id: "14",
        company_user_id: "10314",
        email: "some_email1@ehotmail.com",
        state: "APPROVED",
        token: "5aaa0cd6caac022cf0829860abc42e955ab4c65c",
        user_id: "21592"
    }
]

В бэкэнде я использую Python и Graphenne.Код выглядит следующим образом:

class ResetPasswordInput(graphene.InputObjectType):
    user_id = graphene.Int(required=True)
    email = graphene.String(required=True)
    token = graphene.String(required=True)
    state = graphene.String()
    user_company_id = graphene.Int(required=True)
    company_id = graphene.Int(required=True)


class ResetPassword(graphene.Mutation):
    class Arguments:
        input = graphene.List(ResetPasswordInput, required=True)

    ok = graphene.Boolean()

    @staticmethod
    def mutate(self, info, input):
        pdb.set_trace()
        ok = True
        # Send email

        return ResetPassword(ok=ok)


class Mutation(graphene.ObjectType):
    reset_password = ResetPassword.Field()

Но я продолжаю получать сообщение об ошибке:

{"errors":[{"message":"Variable \"input\" of type \"[ResetPasswordInput]!\" used in position expecting type \"ResetPasswordInput!\".","locations":[{"line":1,"column":24},{"line":2,"column":24}]}]}

Что я делаю не так?

...