Пример создания постов в Puzzle через GraphQL
Пример проверки заполненных пользователем отчетов. Программа запрашивает из Puzzle информацию о заполненных отчетах для пользователя ( без авторизации, по имени пользователя из файла .env ) и показывает всплывающее уведомление, если есть незаполненные дни.
uv run --script ./reminder.pyДля общения с GraphQL-интерфейсом Puzzle программа использует клиент (модуль puzzle), созданный инструментом для кодогенерации ariadne-codegen. В случае если вам необходимо изменить функционал клиента, не нужно модифицировать вручную код модуля puzzle.
Вместо этого необходимо:
-
Убедиться, что файл
schema.graphqlсодержит актуальную модель данных. -
Изменить файл
queries.graphqlтак, чтобы он содержал необходимые запросы к БД Puzzle. -
Выполнить команду для регенерации модуля
puzzle:uv run ariadne-codegen
Важно: Запуск
ariadne-codegenявляется обязательным шагом перед первым запуском приложения и после любых изменений в файлахschema.graphqlилиqueries.graphql.
Для обновления схемы потребуется установленное приложение cynic-cli, которое можно установить следующей командой (в системе должен быть установлен Rust):
cargo install --git https://github.com/obmarg/cynic.git cynic-cliПосле установки cynic-cli выполните в shell команду ./get-schema.sh > schema.graphql, в корне репозитория. Этот скрипт выполнит аутентификацию на сервере Puzzle и скачает актуальную схему GraphQL в файл schema.graphql.
Чтобы скрипт успешно выполнился, необходимо предварительно задать в файле .env переменные:
PUZZLE_API— URL GraphQL API сервера Puzzle.PUZZLE_USER_DOMAIN— домен студии, пустой, если домен не используется.PUZZLE_USERNAME— имя пользователя.PUZZLE_PASSWORD— пароль пользователя.
пример файла .env приведен в example.env.