Призма добавляет пользовательское поле к информационному аргументу при запросе данных - PullRequest
0 голосов
/ 24 января 2019

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

У меня ниже миграций:

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!
}

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

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

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);
          }
        }

У кого-нибудь есть идеи, как мне это сделать? ТНХ!

1 Ответ

0 голосов
/ 24 января 2019

Вы можете использовать addFragmentToInfo из graphql-bindings

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

...