Создать подписку с аргументами в AWS AppSync с помощью GraphQL Transform - PullRequest
0 голосов
/ 19 января 2019

В настоящее время я использую GraphQL transform lib для генерации всей моей схемы.У меня определена модель, подобная этой:

type Feedback @model {
  id: ID!
  event: Event! @connection(name: "EventFeedbacks")
  submittedDate: AWSDateTime!
}

, и автоматически сгенерированная схема подписки выглядит так:

type Subscription {
    onCreateFeedback: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

Я хотел бы иметь аргумент для подписки, чтобы я могможет подписаться только на это событие, например:

type Subscription {
    onCreateFeedback(eventId: ID): Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

Что мне нужно сделать, чтобы автоматически создать эту подписку?Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 января 2019

Как правильно указывает @Tinou, вы можете переименовывать и отключать поля подписки, сгенерированные @model, используя аргумент subscriptions, но вы также можете создавать собственные подписки, добавляя тип Subscription в свою схему.

type Subscription {
    customField(arg: String): String @aws_subscribe(mutations:["customPublish"])
}

При таком подходе вы можете добавлять любые поля и аргументы, которые вам нужны.

0 голосов
/ 20 января 2019

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

Пример:

type Feedback @model(subscriptions: { onCreate: ["onCreateFeedback", "onCreateFeedbackById"] }) {
  id: ID!
  event: Event! @connection(name: "EventFeedbacks")
  submittedDate: AWSDateTime!
}

будет генерироваться для типа подписки:

type Subscription {
    onCreateFeedback: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
    onCreateFeedbackById: Feedback
        @aws_subscribe(mutations: ["createFeedback"])
}

но тогда вам придется вручную добавить аргумент eventId в поле onCreateFeedbackById.

Хотя я бы предложил открыть запрос функции в https://github.com/aws-amplify/amplify-cli/issues

...