Как мне создать запрос к типу, который включает отношение в graphql / prisma?

#mongodb #graphql #prisma-graphql

#mongodb #graphql #prisma-graphql

Вопрос:

У меня есть тип «Контракт», который включает в себя «Пользователь», который является отношением. Я хочу написать мутацию для включения пользователя.

Я думал, что пользователь просто сохранил идентификатор, поэтому моя мутация выглядела так:

 mutation createContract {
  createContract(
    data: {
      contract_no: "999"
      user: "5cb0994e24aa9a0008fde672"
      contractItems: {
        create: [
          {
            title: "new contract item"
          }
        ]
      }
    }
  ) {
    id
    contract_no
    contractItems {
      title
    }
  }
}
  

Ошибка включает фразу «Причина: ‘user’ Ожидаемый ‘UserCreateOneInput’, найден не объект. «, Я думаю, что это должна быть довольно простая синтаксическая вещь. Кстати, в contractItems есть директива @embedded .

Комментарии:

1. Ищите документы по использованию преобразователей полей в graphql.

2. Обратитесь к этой ссылке: medium.com/paypal-engineering/… Найдите раздел, Fetching data at a field-level

3. Можете ли вы поделиться кодом для resolver? или вы напрямую вызываете prisma API? Если да, то вам необходимо иметь вложенную мутацию для user поля, связывающего контракт с пользователем.

Ответ №1:

Я не установил соединение, даже несмотря на то, что datamodel имеет директиву @relation для пользователя. Строка 5 должна гласить

пользователь: { connect: {id: «5cbae19924aa9a0008fde67c»} }

Спасибо всем за комментарии.