Prisma добавляет настраиваемое поле в информационный аргумент при запросе данных

Я пытаюсь добавить дополнительные поля в информационный объект при запросе данных из базы данных prisma. Я видел этот Почта, но не могу заставить работать фрагменты.

У меня есть следующие миграции:

type User {
 id: ID! @unique
 name: String
}

type Video {
 id: ID! @unique
 name: String
 likes: [Like]
}

type Like {
 id: ID! @unique
 user: User
 createdAt: DateTime!
}

Теперь я хотел бы запросить все видео и проверить, понравилось ли видео текущему пользователю. Если это так, объект лайков должен прочитать значение createdAt, иначе оно будет пустым.

Я делаю это на игровой площадке с помощью следующего запроса:

query {
 videos() {
  id
  name
  hasVoted: likes(where: {user: {id: "cjr7r85jy00rc0892dfwpu96u"}){
   createdAt
  }
 }
}

это работает, но я хотел бы добавить hasVoted в свой преобразователь запросов, чтобы автоматически добавлять его ко всем запросам. Как я могу это сделать ?

Я пытался решить это с помощью фрагментов, но безуспешно:

        videos: {
          fragment: `fragment hasVoted on Video { 
            hasVoted: likes (where: {user: {id: "cjr7r85jy00rc0892dfwpu96u"}}){
              createdAt
            }
           }`,
          resolve: async (_, args, ctx, info) => {
            return await ctx.prisma.query.videos({},info);
          }
        }

У кого-нибудь есть идеи, как я могу это сделать? Спасибо!

Вы используете клиент Prisma или prisma-binding?

Errorname 24.01.2019 11:06

Привет :) Я использую призма-переплет

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

Ответы 1

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

Вы можете использовать addFragmentToInfo из привязок graphql

https://oss.prisma.io/content/graphql-binding/02-api-reference#addfragmenttoinfo

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