Я делаю схему GraphQL через AWS-Amplify, которая имеет тип проекта и тип интерфейса.Каждый проект имеет несколько интерфейсов (один-ко-многим).В рамках атрибутов интерфейса, как я могу фильтровать / проверять, что пользователь может ввести?Например.для Проекта 1, интерфейс 1, частота может быть только ежечасно, еженедельно, ежемесячно, ежегодно.Или другой пример будет в Проекте 1, интерфейс 1, состояние может быть только активным или неактивным.Что я должен сделать, чтобы реализовать эти типы настроек / изменений?
На данный момент мой schema.graphql выглядит следующим образом:
type Project
@model
@auth(rules: [{allow: owner}])
{
project_number: ID!
name: String!
interfaces: [Interface] @connection(name: "ProjectInterfaces")
}
type Interface
@model
@auth(rules: [{allow: owner}])
{
unique_id: String!
external_id: String!
interface_name: String!
version: String!
release: String!
source_feature: String!
state: String!
source_application: String!
source_env: String!
source_go_live: String!
source_payload: String!
source_payload_format: String!
payload_volume: String!
source_protocol: String!
target_application: String!
target_env: String!
target_go_live: String!
target_payload: String!
target_payload_format: String!
target_payload_volume: String!
target_protocol: String!
frequency: String!
authentication: String!
payload_security: String!
transport_security: String!
network_paths: String!
project: Project @connection(name: "ProjectInterfaces")
}
Итак, скажем, кто-то хочет добавитьИнтерфейс и ввод «Bi-Weekly» для частоты, они не позволяют пользователю добавлять интерфейс, потому что будут приниматься только ежечасно, еженедельно, ежемесячно, ежегодно.Затем пользователь будет отображен с правильными возможными вводами, которые они могут ввести для этого интерфейса.