AWS AppSync Graphql订阅-如果订阅的输入在Mutation的列表中,则触发订阅

时间:2019-10-02 20:20:17

标签: javascript amazon-web-services react-native graphql aws-appsync

在AWS AppSync中,我具有以下GraphQL模式。

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

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

type MyResponse{
  ids:[String]
}

我的目标是每当突变返回MyResponse时都能够触发订阅“ mySubscription”,这样列表“ ids” 包含 输入到“ mySubscription”中的单个ID '。

例如,在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']
  }
}

或其中id是任何其他列表,只要它包含“ 1”(输入到订阅中的ID)即可。

这样做的原因是,我有一些事件需要首先根据与突变相关的人员触发客户通知,在此位置,与突变相关的人员的实际名单是动态的。能够说“订阅任何包含我的名字的人的活动”,事情的类型。

我唯一的解决方法是为每个单独参与的人员触发一个通知突变,但这需要对我的服务器的更多调用,而且似乎比我想象的要困难得多。任何帮助将不胜感激。

0 个答案:

没有答案