Graphql подписка по идентификатору - PullRequest
0 голосов
/ 05 марта 2019

Мне нужно подписаться по id и получать уведомления, если обновляется только одно поле, я работаю с сервером йоги и Prisma, это то, что у меня пока есть.

В подписке:

async function purchaseAssigned(parent, args, context, info) {
    return async context.prisma.$subscribe.purchases({ mutation_in: ['UPDATED'] }).node();
}

const assigned = {
    subscribe: purchaseAssigned,
    resolve: (payload, variables) => {
        return payload.purchaseId === variables.purchaseId;
    }
}

module.exports = {
    assigned
};

в схеме: purchaseAssigned(purchaseId: ID!): Purchase

, и это решатель, который инициирует подписку:

async function assignPurchase(root, args, contex) {
  const userID = getUserId(context);
  if (!userID) {
    throw new Error("Not authenticated");
  }

  id = args.id;

  const purchase = await contex.prisma.updatePurchases({
    where: { id },
    data: {
      professional: userID
    }
  });

  pubsub.publish("purchaseAssigned", {
    purchaseAssigned: purchase,
    purchaseId: id,
    professional: userID
  });

  return purchase;
}

Заранее спасибо.

...