Оформление
Обновление количества свободных мест в туре
Для обновления количества свободных мест в туре используйте 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
}