Пользователи¶
Управление учётными записями школы.
Все методы доступны только роли school_admin, остальным - 403.
Ответы содержат объект «Пользователь» (раздел «Авторизация»).
Первого директора школы создаёт администратор Wonk.
Список пользователей¶
Возвращает учётные записи школы, новые первыми.
Запрос: GET {API_URL}/v1/users, авторизация - токен school_admin.
| Параметр | Тип | Описание |
|---|---|---|
role |
string | В строке запроса: teacher или school_admin |
page, page_size |
integer | В строке запроса: пагинация |
Ответ 200: страница с items - объектами «Пользователь».
{"items": [{"id": "0b6f...", "email": "teacher@school.kz", "external_id": null, "first_name": "Дана", "last_name": "Сеитова", "role": "teacher", "is_active": true, "created_at": "2026-11-10T10:00:00Z"}], "total": 1, "page": 1, "page_size": 20}
Создание пользователя¶
Создаёт учётную запись с паролем.
Запрос: POST {API_URL}/v1/users, авторизация - токен school_admin.
| Параметр | Тип | Описание |
|---|---|---|
email* |
string | Email; хранится в нижнем регистре, уникален |
password* |
string | Пароль, 8-128 символов |
first_name* |
string | Имя, 1-255 символов |
last_name* |
string | Фамилия, 1-255 символов |
role |
string | teacher (по умолчанию) или school_admin |
{"email": "teacher@school.kz", "password": "secret123", "first_name": "Дана", "last_name": "Сеитова", "role": "teacher"}
Ответ 201: объект «Пользователь».
| Код ошибки | Когда |
|---|---|
409 |
Email уже занят |
422 |
Неверные поля |
Пользователь¶
Возвращает одну учётную запись.
Запрос: GET {API_URL}/v1/users/{user_id}, авторизация - токен school_admin.
Ответ 200: объект «Пользователь».
| Код ошибки | Когда |
|---|---|
404 |
Учётной записи нет |
Изменение пользователя¶
Меняет переданные поля, остальные не трогает.
Сброс пароля - передать password, отключение - "is_active": false; удаления нет.
Запрос: PATCH {API_URL}/v1/users/{user_id}, авторизация - токен school_admin.
| Параметр | Тип | Описание |
|---|---|---|
email |
string | Новый email |
password |
string | Новый пароль, 8-128 символов |
first_name, last_name |
string | Имя и фамилия, 1-255 символов |
role |
string | teacher или school_admin |
is_active |
boolean | false отключает учётную запись |
{"password": "reset-password-1", "is_active": true}
Ответ 200: объект «Пользователь».
| Код ошибки | Когда |
|---|---|
404 |
Учётной записи нет |
409 |
Email занят, или попытка отключить себя или сменить себе роль |
422 |
Неверные поля |