Перейти к содержимому

POST /api/invites/:id/accept — Принять приглашение

Сгенерировано из матриц + кода. Правки вносить в источники (docs/matrices/, server/routes/), не здесь.

ПолеЗначение
HTTPPOST /api/invites/:id/accept
AuthrequireAuth — только авторизованный
Scope токенаread_write
PG-функцииapi.accept_invite
Таблицыinvite, org_member, space_member
SRMSRM-067
RP (права)RP-055
Файл роутаserver/routes/invites.js
Статусdone

Аргументы запроса (best-effort из хендлера; путь-параметры опущены):

аргументов не обнаружено (подтвердить вручную по server/routes/invites.js)

Коды ответов/ошибок (из хендлера): 404 (+ 200) — уточнить причины вручную

Для человека

Как открыть: перейдите по ссылке-приглашению из письма → на экране принятия нажмите «Принять». Если вы ещё не вошли, сначала появится предложение войти или зарегистрироваться — принять можно только под своим аккаунтом.

Завершает вступление в организацию: после нажатия вы становитесь её участником, приглашение помечается использованным, и через пару секунд вас перебрасывает к проектам. Org-приглашение по умолчанию даёт роль участника-сотрудника (member); если в приглашении был указан спейс, вы заодно добавляетесь и в него.

Ограничения понятны из ответа: повторно принять уже использованное или несуществующее приглашение нельзя (404), а истёкшую ссылку метод не примет. Принять можно только своё приглашение — то, что открыто по ссылке под вашим аккаунтом.

Кто может. Любой вошедший пользователь, открывший ссылку-приглашение (FM-064, RP-055). Гостю сперва нужно зарегистрироваться или войти.

Для агента

Запись — нужен токен со scope read_write. Эта операция включена в write-allowlist agent-gate (server/auth/agentGate.js, INVITE_ACCEPT), поэтому токен сюда проходит и действует от имени владельца токена: в организацию вступит именно он. Токен со scope read получит 403 (method-gate).

Путь-параметр :id — UUID приглашения. Его берут из ответа приглашения по ссылке (поле id). Тело запроса не требуется.

Пример запроса:

Окно терминала
curl -X POST https://specbuilder.vnimanie.ai/api/invites/c3d4e5f6-.../accept \
-H "Authorization: Bearer tak_..."

Ответ 200:

{ "ok": true, "org_id": "8f3a...", "role": "member", "already_member": false }

Поле already_member = true, если владелец токена уже состоял в организации (приглашение всё равно помечается принятым, повторного добавления не происходит).

Ошибки приходят чистым JSON { "error": "..." }: приглашения нет — INVITE_NOT_FOUND; уже использовано — INVITE_NOT_PENDING; истекло — INVITE_EXPIRED. Все они отдаются с 400 (нет совпадения по «доступ»/«прав»). Markdown-зеркала и ETag у метода нет.

Чтобы узнать, кем именно стал токен после вступления, — whoami (GET /api/users/me): владелец и его активная организация.

Связанные