Обр. заезды для 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. Подытог
Соответственно, нужно:
- постучаться в АИС https://api.tavrida.art/events/{eventID}/parts
- постучаться в CMS https://apicms.tavrida.art/api/block/list/public/
- выбрать все EventPart из АИС, у которых нет
EventPart.parentID
- это заезды - заджойнить в них контент из CMS, если есть