Оформление
Обновление количества свободных мест в туре
Для обновления количества свободных мест в туре используйте POST запрос https://toursystema.com/org-api/tour/update-availability
Пример запроса
json
{
"tour_id": 123,
"id": 1234,
"start": "2024-10-10",
"end": "2024-12-20",
"number_of_seats": 10,
"number_of_free_seats": 5
}Параметры запроса
| Параметр | Описание | Тип данных | Обязательно |
|---|---|---|---|
| tour_id | Идентификатор тура в админке | integer | Да |
| id | Идентификатор групповой даты в туре | integer | Да |
| start | Дата начала тура | date YYYY-MM-DD | Да |
| end | Дата завершения тура | date YYYY-MM-DD | Да |
| number_of_seats | Количество мест всего | integer | null | Нет |
| number_of_free_seats | Новое количество свободных мест | integer | null | Нет |
Логика работы
При получении запроса система выполняет следующие действия:
- Проверяет наличие организатора в системе
- Находит тур по указанному
tour_id - Проверяет доступ организатора к туру
- В найденном туре проверяет существование групповой даты с идентификатором
id - Проверяет соответствие дат проведения (
startиend) с датами групповой даты - Обновляет в найденной дате параметры:
- "Свободных мест" (если передан
number_of_free_seats) - "Количество мест всего" (если передан
number_of_seats)
- "Свободных мест" (если передан
- Если текущий тур является вариантом тура:
- Система находит все связанные варианты этого тура
- В каждом варианте ищет групповые даты с указанными датами проведения (
startиend) - Обновляет в найденных датах параметры:
- "Свободных мест"
- "Количество мест всего"
Структура ответа
Успешный ответ (HTTP 200)
json
{
"success": true
}Возможные ошибки
- Неверный формат данных (HTTP 400)
json
{
"name": "Bad Request",
"message": "Неверный формат данных",
"code": 0,
"status": 400
}- Даты не совпадают (HTTP 400)
json
{
"name": "Bad Request",
"message": "Даты проведения не совпадают с указанной групповой датой",
"code": 0,
"status": 400
}- Организатор не найден (HTTP 404)
json
{
"name": "Not Found",
"message": "Организатор не найден",
"code": 0,
"status": 404
}- Тур не найден (HTTP 404)
json
{
"name": "Not Found",
"message": "Тур не найден",
"code": 0,
"status": 404
}- Групповая дата не найдена (HTTP 404)
json
{
"name": "Not Found",
"message": "Групповая дата не найдена",
"code": 0,
"status": 404
}- Нет доступа к туру (HTTP 403)
json
{
"name": "Forbidden",
"message": "У организатора с id 1 нет доступа к туру с id 2",
"code": 0,
"status": 403
}- Внутренняя ошибка сервера (HTTP 500)
json
{
"name": "Internal Server Error",
"message": "Произошла ошибка при обновлении данных",
"code": 0,
"status": 500
}