Запрос Graphql для обновления таблицы в hasura

Я пытаюсь обновить таблицу в Hasura. Я написал приведенный ниже запрос, чтобы обновить строку в таблице users, где id(первичный ключ) равен переданному id из переменной. Если id совпадает, обновите поле account_id, которое содержит nullable и unique внутри хасуры.

const query = `mutation updateAccountId($id: String!, $account_id: String) {
  update_users(where: {id: {_eq: $id}}, _set: {account_id: $account_id}){
    affected_rows
  }
}`;

fetch("https://xyz.hasura.app/v1/graphql", {
  method: "post",
  headers: {
    "content-type": "application/json",
    Authorization: `Bearer ${token}`,
  },
  body: JSON.stringify({
    query,
    variables: {
      id: "P9gc6WanL9YAy7JdD6pEbcfULYt2",
      account_id: "3afc4fds2ds4",
    },
  }),
}).then((response) => {
  console.info(
    response,
  );
});

Я получаю следующую ошибку после нескольких попыток. Не знаю, является ли это синтаксической ошибкой graphql или чем-то, связанным с хасурой.

{
    "errors": [
        {
            "extensions": {
                "code": "validation-failed",
                "path": "$.selectionSet.update_users"
            },
            "message": "'update_users' has no argument named '_set'"
        }
    ]
}

Синтаксис GraphQL в порядке. Проверьте параметры update_users — похоже, _set там нет. Лучше всего проверить свои запросы на игровой площадке/graphiql перед тем, как зафиксировать их в коде.

Michel Floyd 29.12.2022 19:15

Я протестировал запрос внутри графической консоли hasura, там все работает нормально. Но когда я пытаюсь это сделать из почтальона или напрямую из кода, он выдает ошибку.

Sakin 30.12.2022 06:00
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
2
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решено. Проблема была в том, что я не включил разрешение на обновление таблицы users внутри hasura, поэтому я получил эту ошибку.

Не очень хорошее сообщение об ошибке от Хасуры!

Michel Floyd 30.12.2022 19:09

Другие вопросы по теме