Sync §6 user API with eventhub_app (CRUD + WS). Fixes EventHub/EventHubSpec#5
This commit is contained in:
@@ -306,27 +306,43 @@ src/
|
|||||||
- `GET /v1/user/following` — календари, которые пользователь отслеживает (follow).
|
- `GET /v1/user/following` — календари, которые пользователь отслеживает (follow).
|
||||||
- `GET /v1/search` — поиск; пустой запрос (только auth + пагинация/`type`) — discovery tops.
|
- `GET /v1/search` — поиск; пустой запрос (только auth + пагинация/`type`) — discovery tops.
|
||||||
- `GET /v1/calendars` — список календарей.
|
- `GET /v1/calendars` — список календарей.
|
||||||
|
- `POST /v1/calendars` — создать календарь.
|
||||||
- `GET /v1/calendars/:id` — календарь (поле `following` для текущего пользователя).
|
- `GET /v1/calendars/:id` — календарь (поле `following` для текущего пользователя).
|
||||||
|
- `PUT /v1/calendars/:id` — обновить календарь.
|
||||||
|
- `DELETE /v1/calendars/:id` — удалить календарь.
|
||||||
- `POST /v1/calendars/:id/follow` — отслеживать чужой календарь.
|
- `POST /v1/calendars/:id/follow` — отслеживать чужой календарь.
|
||||||
- `DELETE /v1/calendars/:id/follow` — снять follow.
|
- `DELETE /v1/calendars/:id/follow` — снять follow.
|
||||||
- `GET /v1/calendars/:calendar_id/events` — события календаря.
|
- `GET /v1/calendars/:calendar_id/events` — события календаря.
|
||||||
|
- `POST /v1/calendars/:calendar_id/events` — создать событие.
|
||||||
- `GET /v1/events/:id` — событие.
|
- `GET /v1/events/:id` — событие.
|
||||||
|
- `PUT /v1/events/:id` — обновить событие.
|
||||||
|
- `DELETE /v1/events/:id` — удалить событие.
|
||||||
- `GET /v1/events/:id/occurrences` — вхождения повторяющегося события.
|
- `GET /v1/events/:id/occurrences` — вхождения повторяющегося события.
|
||||||
|
- `DELETE /v1/events/:id/occurrences/:start_time` — отменить вхождение серии.
|
||||||
- `POST /v1/events/:id/bookings` — запись на событие.
|
- `POST /v1/events/:id/bookings` — запись на событие.
|
||||||
|
- `GET /v1/events/:id/bookings` — список бронирований события (владелец).
|
||||||
- `GET /v1/bookings/:id` — статус бронирования.
|
- `GET /v1/bookings/:id` — статус бронирования.
|
||||||
|
- `PUT /v1/bookings/:id` — подтвердить/отклонить бронирование (владелец).
|
||||||
|
- `DELETE /v1/bookings/:id` — отменить бронирование (участник).
|
||||||
- `POST /v1/reviews` — создать отзыв.
|
- `POST /v1/reviews` — создать отзыв.
|
||||||
- `GET /v1/reviews` — список отзывов (поле `my_vote` для текущего пользователя).
|
- `GET /v1/reviews` — список отзывов (поле `my_vote` для текущего пользователя).
|
||||||
- `GET /v1/reviews/:id` — отзыв по ID (`my_vote`).
|
- `GET /v1/reviews/:id` — отзыв по ID (`my_vote`).
|
||||||
- `PUT /v1/reviews/:id` — обновить отзыв.
|
- `PUT /v1/reviews/:id` — обновить отзыв.
|
||||||
|
- `DELETE /v1/reviews/:id` — удалить свой отзыв.
|
||||||
- `PUT /v1/reviews/:id/vote` — поставить/сменить голос (`{"value":"like"|"dislike"}`).
|
- `PUT /v1/reviews/:id/vote` — поставить/сменить голос (`{"value":"like"|"dislike"}`).
|
||||||
- `DELETE /v1/reviews/:id/vote` — снять голос.
|
- `DELETE /v1/reviews/:id/vote` — снять голос.
|
||||||
- `POST /v1/reports` — пожаловаться (`target_type`: `event` | `calendar` | `review`).
|
- `POST /v1/reports` — пожаловаться (`target_type`: `event` | `calendar` | `review`).
|
||||||
|
- `GET /v1/reports` — список жалоб пользователя.
|
||||||
- `GET /v1/tickets` — тикеты пользователя.
|
- `GET /v1/tickets` — тикеты пользователя.
|
||||||
- `POST /v1/tickets` — создать или обновить тикет (дедуп по `error_hash`): body `{ error_message, stacktrace?, context?, source?: frontend|manual }`; ответ 201 (или 429 при rate-limit новых).
|
- `POST /v1/tickets` — создать или обновить тикет (дедуп по `error_hash`): body `{ error_message, stacktrace?, context?, source?: frontend|manual }`; ответ 201 (или 429 при rate-limit новых).
|
||||||
- `GET /v1/tickets/:id` — статус тикета.
|
- `GET /v1/tickets/:id` — статус тикета.
|
||||||
- `GET /v1/subscription` — подписка пользователя.
|
- `GET /v1/subscription` — подписка пользователя.
|
||||||
|
- `POST /v1/subscription` — активировать подписку.
|
||||||
- `GET /v1/calendars/:calendar_id/view?month=YYYY-MM` — HTML-календарь (владелец), включая архив.
|
- `GET /v1/calendars/:calendar_id/view?month=YYYY-MM` — HTML-календарь (владелец), включая архив.
|
||||||
|
|
||||||
|
### WebSocket (порт 8081)
|
||||||
|
- `WS /ws` — пользовательский канал real-time (подписка на обновления событий календаря; детали — §2.11).
|
||||||
|
|
||||||
### Административные (порт 8445)
|
### Административные (порт 8445)
|
||||||
- `GET /admin/health` и `GET /v1/admin/health` — состояние сервера + build identity: `status`, `service`, `version` (`MAJOR.MINOR` из `EventHubSpec/VERSION`), `build` (CI `run_number`, per-repo), `git_sha`, `built_at`. `/admin/health` — CT/Traefik; `/v1/admin/health` — Admin UI.
|
- `GET /admin/health` и `GET /v1/admin/health` — состояние сервера + build identity: `status`, `service`, `version` (`MAJOR.MINOR` из `EventHubSpec/VERSION`), `build` (CI `run_number`, per-repo), `git_sha`, `built_at`. `/admin/health` — CT/Traefik; `/v1/admin/health` — Admin UI.
|
||||||
- `GET /v1/admin/stats` — агрегированная статистика дашборда.
|
- `GET /v1/admin/stats` — агрегированная статистика дашборда.
|
||||||
|
|||||||
Reference in New Issue
Block a user