Мутация со списком строк Переменная $ _v0_data получила недопустимое значение Graphql Node.js

У меня есть эта простая мутация, которая отлично работает

    type Mutation {
    addJob(
        url: String!
        description: String!
        position: String!
        company: String!
        date: DateTime!
        tags: [String!]!
    ): Job
}

Преобразователь мутаций

    function addJob(parent, args, context, info) {

    console.log('Tags => ', args.tags)
    // const userId = getUserId(context)
    return context.db.mutation.createJob(
        {
            data: {
                position: args.position,
                componay: args.company,
                date: args.date,
                url: args.url,
                description: args.description,
                tags: args.tags
            }
        },
        info
    )
}

однако, как только я попытался поместить массив строк (тегов), как вы видите выше, я не могу заставить его работать, и я получил эту ошибку

Error: Variable "$_v0_data" got invalid value { ... , tags: ["devops", "aws"] }; Field "0" is not defined by type JobCreatetagsInput at value.tags.

Если я присвоил тегам в мутации пустой массив, проблем не возникнет, однако, если я помещу, например, одно строковое значение ["DevOps"], я получу сообщение об ошибке


person Mo Hajr    schedule 04.11.2018    source источник
comment
пожалуйста, добавьте код мутации   -  person Peter    schedule 04.11.2018
comment
@Peter Добавил.   -  person Mo Hajr    schedule 05.11.2018
comment
Вы недавно меняли схему мутации? Вы prisma deploy? Похоже, type JobCreatetagsInput не ожидает этого String типа.   -  person Elfayer    schedule 07.11.2018
comment
@Elfayer Нет, это вообще не изменилось, и если я попробовал развернуть Prisma, схема будет актуальной, и об этом - JobCreatetagsInput, введите JobCreatetagsInput {set: [String!]}   -  person Mo Hajr    schedule 07.11.2018


Ответы (1)


Очевидно, проблема заключалась в функции распознавателя, поскольку я нашел здесь, и мне нужно назначить теги список внутри объекта в заданном аргументе, как в приведенном ниже коде

function addJob(parent, args, context, info) {
    return context.db.mutation.createJob(
        {
            data: {
                position: args.position,
                componay: args.company,
                date: args.date,
                url: args.url,
                description: args.description,
                tags: { set: args.tags }
            }
        },
        info
    )
}
person Mo Hajr    schedule 09.11.2018
comment
Спасибо за то, что поделились, работает как брелок, в доке об этом не ясно. - person Merlyn007; 10.01.2019
comment
@ Merlyn007 рад, что это помогло ^^ - person Mo Hajr; 10.01.2019