P0: GET /v1/events/:id/bookings отдаёт 500 — владелец не видит заявки #51

Open
opened 2026-07-21 00:21:31 +03:00 by cursor-ai · 0 comments
Owner

Проблема

На stage GET /v1/events/:id/bookings возвращает HTTP 500. В UI владелец события видит «Нет заявок» и не может подтвердить/отклонить pending-запись кнопками.

Причина: handler_bookings:list_bookings/1 вызывает logic_booking:list_event_bookings(UserId, EventId) (arity 2), тогда как в logic_booking экспортирован только list_event_bookings/1.

Воспроизведение (browser QA, 2026-07-20/21):

  1. Пользователь B записывается на событие коммерческого календаря владельца A → status pending.
  2. Владелец A открывает карточку события → блок «Заявки» пустой («Нет заявок»).
  3. API: GET /v1/events/T75zm7qXFeISw9yREnJ0tA/bookings → 500; PUT /v1/bookings/:id с action=confirm от владельца при этом работает (200).

Влияние

Владелец не может подтверждать записи через UI. Обход только через прямой API. Ломает сценарий «запись → подтверждение → отзыв».

Ожидаемый результат

Владелец получает список заявок события и может confirm/decline в карточке события.

Критерии приёмки

  • GET /v1/events/:id/bookings для владельца возвращает 200 и список заявок (в т.ч. pending)
  • Чужой пользователь не получает чужие заявки (403/пустой по правилам доступа)
  • В UI владельца появляются кнопки подтверждения/отклонения
  • Есть/обновлён CT или unit-тест на list event bookings для владельца

Файлы (подсказка)

  • src/handlers/handler_bookings.erl (вызов list_event_bookings/2)
  • src/logic/logic_booking.erl (list_event_bookings/1, list_bookings/2)

Приоритет

P0

## Проблема На stage `GET /v1/events/:id/bookings` возвращает HTTP 500. В UI владелец события видит «Нет заявок» и не может подтвердить/отклонить pending-запись кнопками. Причина: `handler_bookings:list_bookings/1` вызывает `logic_booking:list_event_bookings(UserId, EventId)` (arity 2), тогда как в `logic_booking` экспортирован только `list_event_bookings/1`. Воспроизведение (browser QA, 2026-07-20/21): 1. Пользователь B записывается на событие коммерческого календаря владельца A → status `pending`. 2. Владелец A открывает карточку события → блок «Заявки» пустой («Нет заявок»). 3. API: `GET /v1/events/T75zm7qXFeISw9yREnJ0tA/bookings` → 500; `PUT /v1/bookings/:id` с `action=confirm` от владельца при этом работает (200). ## Влияние Владелец не может подтверждать записи через UI. Обход только через прямой API. Ломает сценарий «запись → подтверждение → отзыв». ## Ожидаемый результат Владелец получает список заявок события и может confirm/decline в карточке события. ## Критерии приёмки - [ ] `GET /v1/events/:id/bookings` для владельца возвращает 200 и список заявок (в т.ч. pending) - [ ] Чужой пользователь не получает чужие заявки (403/пустой по правилам доступа) - [ ] В UI владельца появляются кнопки подтверждения/отклонения - [ ] Есть/обновлён CT или unit-тест на list event bookings для владельца ## Файлы (подсказка) - `src/handlers/handler_bookings.erl` (вызов `list_event_bookings/2`) - `src/logic/logic_booking.erl` (`list_event_bookings/1`, `list_bookings/2`) ## Приоритет P0
cursor-ai added the Bug label 2026-07-21 00:21:31 +03:00
Sign in to join this conversation.