20 lines
1.3 KiB
Markdown
20 lines
1.3 KiB
Markdown
|
|
## 1. Service write endpoint
|
|||
|
|
|
|||
|
|
- [x] 1.1 Создать `app/project_members_service.py` с `PUT /api/service/project-members`
|
|||
|
|
- [x] 1.2 Переиспользовать `ProjectMemberWrite`, `validate_member_write`, `upsert_team_member`, `fetch_member_item` из существующих модулей
|
|||
|
|
- [x] 1.3 Авторизация только через `require_api_key`; не вызывать `parse_acting_emp_id` и `can_write_project_member`
|
|||
|
|
- [x] 1.4 Подключить роутер в `main.py`
|
|||
|
|
|
|||
|
|
## 2. Tests
|
|||
|
|
|
|||
|
|
- [x] 2.1 Unit/API-тесты: успешный insert и update без `X-Acting-Emp-Id`
|
|||
|
|
- [x] 2.2 Тесты валидации: invalid section, archived emp, unknown project/emp, invalid role
|
|||
|
|
- [x] 2.3 Тест: без API-ключа → `401` (когда ключ включён)
|
|||
|
|
- [x] 2.4 Регрессия: `PUT /api/project-members` по-прежнему требует acting и права
|
|||
|
|
|
|||
|
|
## 3. Documentation
|
|||
|
|
|
|||
|
|
- [x] 3.1 Обновить матрицу доступа и раздел записи в `docs/user-reader-api.md`
|
|||
|
|
- [x] 3.2 Кратко отразить эндпоинт в `DEVELOPERS.md` (таблица API / сценарий внешней интеграции)
|
|||
|
|
- [x] 3.3 Добавить пример curl для service PUT в docs
|