AWS AppSync Graphql Subsciprtion - запуск подписки, если вход в подписку находится в списке из Mutation - PullRequest
0 голосов
/ 02 октября 2019

В AWS AppSync у меня есть следующая схема GraphQL.

type Mutation{
  myMutation(id:String!): MyResponse
}

type Subscription{
  mySubscription(ids:String):MyResponse @aws_subscribe(mutations: ["myMutation"])
}

type MyResponse{
  ids:[String]
}

Моя цель - иметь возможность инициировать подписку 'mySubscription' всякий раз, когда мутация возвращает MyResponse, так что список 'ids' содержит один идентификатор, введенный в mySubscription.

Так, например, в React-Native я бы сделал следующее:

import * as subscriptions from '../graphql/subscriptions.js'

const mySub = await API.graphql(graphqlOperation(subscriptions.mySubscription,{ids:'1'})).subscribe({
  next: (response) => {

   // DO SOMETHING WITH RESPONSE

  },
  error: (err) => {

  // CATCH ERROR

  }
})

Я бы хотел, чтобы эта подписка запускалась всякий раз, когда myMutation генерировал ответ, такой как

data:{
  myMutation:{
   ids:['1','2']
  }
}

или где ids - это любой другой список, если он содержит «1» (идентификатор, введенный вподписка).

Причина этого в том, что у меня есть события, которые должны запускать уведомления для клиентов, основываясь на том, кто был присоединен к мутации, где фактический список людей, прикрепленных к мутации, является динамическим. Было бы неплохо иметь возможность сказать «подписаться на любое событие, где список людей содержит мое имя», тип вещи.

Единственное, что мне нужно было сделать, - вызвать мутацию уведомления для каждого из людей. индивидуально, но это требует больше звонков на мой сервер и кажется намного сложнее, чем мне кажется. Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...