AWS Укажите, как включить проверку двух атрибутов модели? (например, startDate <endDate) - PullRequest
0 голосов
/ 07 марта 2019

Использование AWS. Поясните, как можно обновить файл модели schema.graphql, чтобы вызвать проверку бэкэнда в нескольких полях созданного API-интерфейса graphql.

Например, с помощью следующего файла schema.graphql для амплификации, как я могу обновить это (или с помощью дополнительных файлов в проекте), чтобы включить проверку на стороне сервера в API-интерфейсе graphql, который он создал таким образом, чтобы :

"startDate должно быть раньше endDate"

файл schema.graphql:

type Event @model {
  id: ID!
  name: String!
  startDate: AWSDate!
  endDate: AWSDate!
  plan: Plan! @connection(name: "PlanEvents")
}

Если это невозможно при работе с усилителем (обратите внимание, что я использую JavaScript-усиление с помощью интерфейса переднего плана), совет по поводу того, какой подход следует использовать для реализации, был бы признателен (например, какие бэкэнд-компоненты AWS мне нужно было бы изучить и изучить, и как это интегрировалось бы с автоматизированным графическим API, который усиливает, эффективно автоматически строит уже для меня)

1 Ответ

1 голос
/ 01 апреля 2019

Вы можете добавить пользовательский преобразователь

Ваша модель Event приведет к созданию файла build/Mutation.createEvent.req.vtl, который можно перезаписать, добавив resolvers/Mutation.createEvent.req.vtl. В этом файле вы можете поместить логику для сравнения двух дат и выдать ошибку. Что-то вроде:

#if( $ctx.args.input.startDate > $ctx.args.input.endDate )
  $util.error("startDate must be before endDate")
#end

Не берите в голову, я понятия не имею, каков реальный синтаксис для сравнения дат в VTL. Это может помочь

...