OBJECT по инструкции из https://www.apollographql.com/docs/graphql-tools/schema-directives#enforcing-access-permissions.
Хочу, чтобы её можно было навешивать на аргументы и инпуты мутаций, то есть на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION.
Логика такая: например, в мутации updatePost ограничить изменение title таким образом, чтобы только администраторы могли менять это поле, путём навешивания директивы на аргумент title. При этом на аргумент content ничего не навешивать, разрешив тем самым всем редактировать поле content. Или навесить директиву с другой ролью (отличной от администратора).
Возможно ли это вообще?
Очевидно, что нужно использовать visitArgumentDefinition и visitInputFieldDefinition.
Но проблема в том, что у argument'ов и input field'ов в field нет resolve.
Мне кажется, что лучше будет сделать две мутации updatePost и adminUpdatePost. Так будет понятнее со стороны клиента что использовать, и проще со стороны сервера в реализации
Вешай свои директивы на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION. Но вот считывай их через visitFieldDefinition: - получил филд конфиг и провалился в его аргументы и типы аргументов - если где-то в глубине нашел свою директиву, то на текущем филд конфиге правишь резолвер. По другому у тебя никак не получится.
https://nexus.js.org/docs/future-features
Обсуждают сегодня