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

Обр. заезды для VK mini-app

1. Ручка АИС https://api.tavrida.art/events/{eventID}/parts

Ссылка на сваггер

В данный момент eventID для мероприятия заездов - 9f2f8b53-cb6e-42d5-9627-aa8eac2acdd9

Так можно получить все части этого мероприятия.

осторожно

Там лежат и арт-школы, и заезды вместе.

  • У EventPart из АИС есть parentID - значит это арт-школа.
  • У EventPart из АИС нет parentID - значит это заезд.

2. Контент из CMS

Сваггер ЦМС, на продакшен не деплоится, поэтому ссылка на демо.

https://demo.tavrida-cms-backend.kube.aventica.tech/api/swagger-ui/static/index.html

Ручка (со слешом на конце)

POST 
/api/block/list/public/

Например, продакшен урл https://apicms.tavrida.art/api/block/list/public/

Тело запроса

{
"ids": [
"f5c5ef7b-2e3a-4957-bbcf-c184a4281955" // blockId
],
"collections": [
{
"blockId": "f5c5ef7b-2e3a-4957-bbcf-c184a4281955", // blockId
"filtering": [
{
"key": "eventAndPart",
"insideKey": "eventId",
"strategy": "InsideObjectExactValue",
"value": "9f2f8b53-cb6e-42d5-9627-aa8eac2acdd9" // eventID
}
]
}
]
}

Здесь blockId f5c5ef7b-2e3a-4957-bbcf-c184a4281955 - это id жсонки коллекции Части мероприятия: Образовательные заезды и арт-школы | 10 авг., 14:24. При деплое новой коллекции (с новыми полями) blockId в запросе придется поменять.

Дефолтная пагинация 100 итемов.


3. Джоин данных

В ответе по запросу выше нужно достать массив

result?.blocks[0]?.content.data.items

У каждого итема массива есть поле item.eventAndPart.eventPartId

Это id части мероприятия, по которому можно заджойнить контент в часть мероприятия АИС EventPart.ID

Обратите внимание, что в CMS name - это объект с переводами. В отличие от АИС, где name - строка.

const textByLocale = {
RU: 'Арт-школа такая-то',
EN: 'Some art-school'
}

4. Подытог

Соответственно, нужно: