Я думаю, что у меня есть ответ на ваш вопрос, но у меня также есть похожий вопрос относительно запросов AWS Amplify codegen
, мутаций и т. Д. Если вы посмотрите на код, сгенерированный внутри папки ~/graphql
, выВы найдете файл объявления, подобный следующему:
export const listOrganizations = `query ListOrganizations(
$filter: ModelOrganizationFilterInput
$limit: Int
$nextToken: String
) {
listOrganizations(filter: $filter, limit: $limit, nextToken: $nextToken) {
items {
id
name
address
}
nextToken
}
}
`;
Здесь вы можете видеть, что первый параметр запроса ListOrganizations
(в вашем случае запрос ListTodos
) принимает первый аргумент filter: $filter
.Я уже понял, что вы можете изменить этот запрос, выполнив следующее ...
API.graphql(graphqlOperation(queries.listTodos, {
filter: {
status: {
eq: "completed"
}
}
})));
Это должно отфильтровать все Todos, кроме тех, где их status
равен completed
.Проблема, с которой я сталкиваюсь, заключается в том, что я хочу включить разные уровни контроля доступа, чтобы каждый, у кого есть группа пользователей Cognito Admin
, мог видеть @model
, а также @owner
.И я смог заставить все это работать с помощью преобразователя @auth
, но теперь моя проблема в том, что на некоторых экранах я хочу отображать только некоторые объекты, которые являются owner
этой сущности, и потому что я также Admin
по умолчанию API получает все.Я хочу использовать это @filter
или ModelOrganizationFilterInput
, чтобы только дать мне данные, где я являюсь владельцем.Единственный способ сделать это - добавить поле owner
в мою схему, но тогда API всегда предоставляет поле владельца, и я хочу отфильтровать это поле.
Единственная документация, которую я могу найти о том, как методы aws-amplify
API
и graphqlOperation
, находится здесь: https://aws -amplify.github.io / docs / js / api но примеров не так много, и они не показывают, как работает API на клиенте.Я застрял.