Skip to content

Add project subscription workspace API - #691

Merged
TThanos3000 merged 1 commit into
masterfrom
feature/dev-084-project-subscriptions-api
Aug 11, 2026
Merged

Add project subscription workspace API#691
TThanos3000 merged 1 commit into
masterfrom
feature/dev-084-project-subscriptions-api

Conversation

@TThanos3000

@TThanos3000 TThanos3000 commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Что сделано

  • добавлен workspace endpoint состояния подписки с GET, POST и DELETE;
  • повторные подписка и отписка идемпотентны;
  • используется существующая связь Project.subscribers, новые модели и миграции не создавались;
  • workspace detail дополнен полями is_subscribed и subscribers_count;
  • состояние рассчитывается ORM-аннотациями Exists и Count без загрузки подписчиков;
  • mutation-service блокирует только строку Project и повторно проверяет workspace-видимость;
  • добавлены проверки прав, пустого payload, отсутствия утечки персональных данных и побочных доменных объектов;
  • сохранены legacy endpoints подписки;
  • добавлена документация docs/project-subscriptions-workspace-api.md.

Контракт

GET    /projects/<project_id>/workspace/subscription/
POST   /projects/<project_id>/workspace/subscription/
DELETE /projects/<project_id>/workspace/subscription/
{
  is_subscribed: true,
  subscribers_count: 7
}

Проверки

Локально пройдены:

  • Black для изменённых Python-файлов;
  • Flake8 для изменённых Python-файлов;
  • python -m py_compile;
  • manage.py check --tag models;
  • makemigrations --check --dry-run --skip-checks: изменений моделей нет;
  • git diff --check;
  • компиляция SQL queryset с Exists/Count;
  • изолированная проверка serializer-контракта.

GitHub Actions:

  • Lint — успешно;
  • Tests — успешно;
  • Backend PostgreSQL CI — успешно: 86 locking/constraint tests и полный suite из 1098 тестов;
  • roadmap sync — успешно.

Локальный PostgreSQL suite не запускался: на localhost:5432 отсутствует сервер, а полный Django check на Windows дополнительно блокируется системной библиотекой WeasyPrint. SQLite и изменения settings не использовались; PostgreSQL-проверки полностью выполнены CI.

Backend behavior вне workspace-подписок, frontend, Angular, зависимости и deploy-конфигурация не изменялись.

@TThanos3000
TThanos3000 marked this pull request as ready for review August 11, 2026 10:25
@TThanos3000
TThanos3000 merged commit 80caacc into master Aug 11, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant