Как обновить запись в graphql, используя переменные - PullRequest
0 голосов
/ 02 февраля 2019

Я использую плагин GraphQL с ремешками, если это имеет значение.

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

mutation {
  updateExam(input: {
    where: {
      id: "1234"
    },
    data: {
      questions: "hello"
    }
  }) {
    exam {
      questions
    }
  }
}

Я узнал, что если я хочу создать новую запись с использованием переменных, я должен написать ее так (ответ Дэвида Мэйза здесь: Как передать JSONобъект в grpahql и strapi ):

const response = await strap.request('POST', '/graphql', {
  data: {
    query: `mutation CreateExam($input: CreateExamInput!) {
  createExam(input: $input) {
    exam { name, desription, time, questions }
  }
}`,
    variables: {
      input: {
        name: examInfo.newExamName,
        desription: examInfo.newExamDescription,
        time: Number(examInfo.newExamTime),
        questions: [{ gf: "hello" }],
        subjects: [this.state.modalSubjeexisting
      }
    }
  }
});

Но как мне обновить существующий запрос?Где я должен поставить

where: {id: "1234"}

Как я могу предоставить существующий идентификатор записи?

1 Ответ

0 голосов
/ 02 февраля 2019

Я не знаю об этой стратификации, но, кстати, она выглядит как мутация, которую вы уже работали, я бы попробовал что-то вроде этого для обновления:

const response = await strap.request('POST', '/graphql', {
  data: {
    query: `mutation UpdateExam($input: UpdateExamInput!) {
      updateExam(input: $input) {
        exam { 
          questions 
        }
      }
    }`,
    variables: {
      input: {
        where: {
          id: examInfo.id
        },
        data: {
          questions: [{ gf: "hello" }]
        }
      }
    }
  }
});

Дайте емупопробуйте и посмотрите, работает ли он.

...