Does anyone know how to get relation object in rea...
# prisma-client
u
Does anyone know how to get relation object in realtime (subscription) iterator? I need to get object
sender
(type User) from created message.
newMessage.sender
is
undefined
t
Do you just need
.sender
? Then you can use
.node().sender()
Otherwise you would have to use
.node().$fragment
for now. We’re working on a nicer way to handle that
u
$fragment, exaclty! will try now, thx
hmm, could you advise, what i did wrong?
t
Yes. Your fragment should rather look like this:
Copy code
fragment F1 on User {
  id
  ...
}
u
Copy code
const messageAsyncIterator = await prisma.$subscribe.message({
        where: {
            mutation_in: ["CREATED"]
        }
    }).node().$fragment(`
          id
          text
          sender {
            id
          }
          receiver {
            id
          }
    `);

    for await (const newMessage of messageAsyncIterator) {
        console.log(newMessage);
    }
could you change this code? I can't understand >_<
t
Copy code
const messageAsyncIterator = await prisma.$subscribe.message({
        where: {
            mutation_in: ["CREATED"]
        }
    }).node().$fragment(`
      fragment F on User {
        id
        text
        sender {
          id
        }
        receiver {
          id
        }
      }
    `);

    for await (const newMessage of messageAsyncIterator) {
        console.log(newMessage);
    }
Btw you should use prettier on save in vscode 😉
u
wow, works! can't understand why, but works! went to understand.... 🙂 Thanks
t
It needs to be a valid graphql document. You can try it out in the playground