Тема
Events API
GET /v1/events
Список публічних подій із фільтрами.
Авторизація: опціональна (якщо є токен — повертає myRsvp, isSaved)
Query параметри
| Параметр | Тип | Опис |
|---|---|---|
lat | number | Широта поточного місця |
lng | number | Довгота поточного місця |
radius | number | Радіус пошуку (км), за замовчуванням 50 |
category | string | Slug категорії |
dateFrom | ISO 8601 | Початок діапазону дат |
dateTo | ISO 8601 | Кінець діапазону дат |
q | string | Повнотекстовий пошук |
page | number | Сторінка (за замовчуванням 1) |
limit | number | Розмір сторінки (за замовчуванням 20, макс 50) |
Запит
http
GET /v1/events?lat=50.45&lng=30.52&radius=10&category=music&page=1&limit=20
Authorization: Bearer <accessToken>Відповідь 200
json
{
"data": [
{
"id": "uuid",
"title": "Jazz у парку",
"description": "Вечір живої музики",
"coverUrl": "https://cdn.pisd.uk/covers/uuid.jpg",
"startAt": "2024-07-20T18:00:00Z",
"endAt": "2024-07-20T21:00:00Z",
"location": {
"address": "вул. Хрещатик 1, Київ",
"lat": 50.45,
"lng": 30.52
},
"category": { "slug": "music", "name": "Музика", "emoji": "🎵" },
"price": 0,
"capacity": 100,
"rsvpCount": 45,
"myRsvp": "going",
"isSaved": false,
"visibility": "public"
}
],
"meta": { "total": 128, "page": 1, "limit": 20 }
}GET /v1/events/:id
Повна інформація про подію.
Авторизація: опціональна
Відповідь 200
json
{
"id": "uuid",
"title": "Jazz у парку",
"description": "Вечір живої музики",
"coverUrl": "https://cdn.pisd.uk/covers/uuid.jpg",
"startAt": "2024-07-20T18:00:00Z",
"endAt": "2024-07-20T21:00:00Z",
"location": {
"address": "вул. Хрещатик 1, Київ",
"lat": 50.45,
"lng": 30.52
},
"category": { "slug": "music", "name": "Музика", "emoji": "🎵" },
"organizer": {
"id": "uuid",
"name": "Іван Петров",
"avatar": "https://cdn.pisd.uk/avatars/uuid.jpg"
},
"price": 0,
"capacity": 100,
"rsvpCount": 45,
"bookedCount": 30,
"visibility": "public",
"template": { "slug": "picnic", "name": "Пікнік" },
"enabledModules": ["bringList"],
"myRsvp": "going",
"myBooking": null,
"isSaved": false
}POST /v1/events/:id/rsvp
Встановити або прибрати RSVP.
Авторизація: Bearer <accessToken>
Тіло запиту
json
{
"status": "going"
}Значення status | Опис |
|---|---|
"going" | Підтвердити участь |
"interested" | Відмітити як цікаво |
null | Прибрати відмітку |
Відповідь 200
json
{
"myRsvp": "going",
"rsvpCount": 46
}POST /v1/events/:id/save
Зберегти або видалити зі збережених.
Авторизація: Bearer <accessToken>
Тіло запиту
json
{ "saved": true }Відповідь 200
json
{ "isSaved": true }GET /v1/events/search
Пошук подій за текстом.
Авторизація: опціональна
Query параметри
| Параметр | Тип | Опис |
|---|---|---|
q | string | Пошуковий запит (обов'язкове) |
page | number | Сторінка |
limit | number | Розмір |
Запит
http
GET /v1/events/search?q=jazz+park&limit=10Відповідь — той самий формат, що й GET /v1/events.