Как подписаться на фильтры? - PullRequest
0 голосов
/ 07 марта 2019

Есть ли способ подписки для получения входных фильтров в качестве параметра, аналогичного запросам и мутациям?

В настоящее время у моей подписки нет источника данных, и я хотел получать подписки, только если это поле начинается с этого значения.

Образец ответа мутации

{
  taskId: "personal-<uuid>",
  name: "Personal Task 1",
  ...
}

По сути, я хочу иметь только одну подписку для проверки всех обновлений задач, где taskId beginsWith String «персональный» .

Схема

input TableStringFilterInput {
  ne: String
  eq: String
  le: String
  lt: String
  ge: String
  gt: String
  contains: String
  notContains: String
  between: [String]
  beginsWith: String
}

input TaskInput {
  taskId: ID!
  ...
}

input TaskFilterInput {
  taskId: TableStringFilterInput
}

mutation updateTask(task: TaskInput) :  Task
subscription onTaskUpdated(filter: TaskFilterInput) : Task
@aws_subscribe(mutations, ["updateTask"])

Проверка подписки с помощью консоли запросов Appsync

subscription TaskUpdated {
  onTaskUpdated(filter: {
    taskId : { beginsWith: "personal" },
  }) {
    taskId
    name
  }
}

1 Ответ

0 голосов
/ 12 марта 2019

https://docs.aws.amazon.com/appsync/latest/devguide/real-time-data.html

Вы можете передавать подобные аргументы

subscription TaskUpdated {
    onTaskUpdated(taskCategory: "personal"){
        taskId
        taskCategory
        name
    }
}

Если возможно добавить еще одно свойство taskCategory в тип задачи ... может решить вашу проблему.

Другой вариант - отфильтровать в приложении

...