Skip to content
This repository has been archived by the owner on May 14, 2021. It is now read-only.

MrDreek/cuba-ai-bot

Repository files navigation

Порядок деплоя

git clone https://github.com/MrDreek/cuba-ai-bot.git

composer install --no-dev установка зависимостей без require-dev

php -r "file_exists('.env') || copy('.env.example', '.env');"

php artisan key:generate

Указать необходимые данные в файле .env (Подключение к базе, настройки прокси, ключи от АПИ)

php artisan config:cache // команда для кеширования настроек окружения

php artisan migrate // Применение миграций

Endpoint

POST /api/weather/get-weather

Запрос:

{
	"name":"Матансас"
}

Ответ:

{
    "temp": 24,
    "feels_like": 27,
    "temp_water": 29,
    "icon": "bkn_n",
    "condition": "малооблачно",
    "wind_speed": 3.1,
    "wind_gust": 8.3,
    "wind_dir": "восточное",
    "pressure_mm": 753,
    "pressure_pa": 1004,
    "humidity": 94,
    "uv_index": 0,
    "soil_temp": 24,
    "soil_moisture": 0.47,
    "daytime": "темное время суток",
    "polar": false,
    "season": "осень",
    "obs_time": 1538987766,
    "source": "station"
}

GET /api/money/get-rate

Ответ:

{
"CUP_RUB": 2.468985,
"CUC_RUB": 65.462301,
"CUP_USD": 0.037736,
"CUC_USD": 1
}

POST /api/ticket/search

Запрос:

{
	"departure_city": "Санкт-Петербург",
	"arrival_city": "Гавана",
	"departure_date": "10.10.2018",
	"return_date": "20.10.2018",
	"AD": "2", 
	"CN": "4",
	"IN": "2",
	"SC": "Эконом"
}

AC - Количество взрослых (от 1 до 6) CN - Количество детей в возрасте от 2х месяцев до 12 лет (от 0 до 4) IN - Количетсво детей в возрасте от 2х недель до 2х лет (От 0 до 2)

Общее количество человек не должно привышать 8 человек

Ответ:

{
    "Id": "41658830442170"
}

Id - номер запроса

POST /api/ticket/check

Запрос:

{
	"requestId": 41658830442170
}

Ответ:

{
    "percentage": "100",
    "message": "Готов к получению результатов"
}

precentage - процент выполнения поиска результата message - сообщение( Готов к получению результатов или результат ещё не готов)

Рекомендуется опрашивать метод не более чем раз в 2 секунды

POST /api/ticket/get-result

Запрос:

{
	"requestId": 41658830442170
}

Ответ:

{
    "link": "https://www.anywayanyday.com/avia/offers/1010LEDHAV2010HAVLEDAD2CN4IN2SCE/?R=41658830442170&Language=RU&Currency=RUB",
    "results": {
        "current_page": 1,
        "data": [
            {
                "AC": "Air France",
                "AT": "367777",
                "to": {
                    "department_time": "09:10",
                    "department_date": "10.10.2018",
                    "flight_time": "17:55",
                    "route": "CDG"
                },
                "from": {
                    "department_time": "22:25",
                    "department_date": "10.10.2018",
                    "flight_time": "32:25",
                    "route": "CDG"
                }
            },
            {
                "AC": "KLM",
                "AT": "376265",
                "to": {
                    "department_time": "05:45",
                    "department_date": "10.10.2018",
                    "flight_time": "21:20",
                    "route": "AMS;CDG"
                },
                "from": {
                    "department_time": "22:25",
                    "department_date": "10.10.2018",
                    "flight_time": "32:25",
                    "route": "CDG"
                }
            },
            {
                "AC": "KLM",
                "AT": "376265",
                "to": {
                    "department_time": "05:45",
                    "department_date": "10.10.2018",
                    "flight_time": "21:20",
                    "route": "AMS;CDG"
                },
                "from": {
                    "department_time": "22:25",
                    "department_date": "10.10.2018",
                    "flight_time": "32:25",
                    "route": "CDG"
                }
            },
            {
                "AC": "KLM",
                "AT": "376265",
                "to": {
                    "department_time": "05:45",
                    "department_date": "10.10.2018",
                    "flight_time": "21:20",
                    "route": "AMS;CDG"
                },
                "from": {
                    "department_time": "22:25",
                    "department_date": "10.10.2018",
                    "flight_time": "32:25",
                    "route": "CDG"
                }
            },
            {
                "AC": "KLM",
                "AT": "376265",
                "to": {
                    "department_time": "05:45",
                    "department_date": "10.10.2018",
                    "flight_time": "21:20",
                    "route": "AMS;CDG"
                },
                "from": {
                    "department_time": "22:25",
                    "department_date": "10.10.2018",
                    "flight_time": "32:25",
                    "route": "CDG"
                }
            }
        ],
        "first_page_url": "http://192.168.42.135/api/ticket/get-result?page=1",
        "from": 1,
        "last_page": 24,
        "last_page_url": "http://192.168.42.135/api/ticket/get-result?page=24",
        "next_page_url": "http://192.168.42.135/api/ticket/get-result?page=2",
        "path": "http://192.168.42.135/api/ticket/get-result",
        "per_page": 5,
        "prev_page_url": null,
        "to": 5,
        "total": 116
    }
}

link - ссылка на страницу покупки билетов results - массив билетов, отсортированных по цене path - url метода first_page_url - ссылка пагинации, на первую страницу last_page_url - ссылка пагинации, на последную страницу next_page_url - ссылка пагинации, на следующую страницу prev_page_url - ссылка пагинации, на предыдущую страницу

last_page - номер последней страницы per_page - количество элементов на странице from - номер первого элемента на странице to - номер последнего элемента на странице total - общее количество элементов на странице

POST /api/tour/search

Запрос:

{
	"from_city":"Санкт-Петербург",
	"to_city": "Гавана",
	"nights": 7,
	"adults": 2,
	"start_date": "18.10.2018",
	"stars_from": 1,
	"stars_to": 5
}

Обязательные: from_city - Город отправления nights - количество ночей прибывания adults - Количетсво взрослых start_date - Дата начала

to_city - Город прибытия stars_from - Количество звёзд "с" stars_to - Количество звёзд "до" hotel_ids - ид отелей через запятую kids - колчество детей kids_ages - возраст детей через запятую, обязательный, если указано количество детей

Ответ:

{
    "message": "Поиск начат",
    "requestId": "MnwyMjV8MTAxMzd8MTAwMTd8fDIwMTgtMTAtMTgsMjAxOC0xMC0xOHwwfDcsN3wyfDB8fHww"
}

requestId - id запроса на поиск туров

POST /api/tour/check

Запрос:

{
	"requestId":"MnwyMjV8MTAxMzd8MTAwMTd8fDIwMTgtMTAtMTgsMjAxOC0xMC0xOHwwfDcsN3wyfDB8fHww"
}

Обязательный: requestId - Id запроса на поиск тура

Ответ:

{
    "message": "Результат не готов!",
    "error": "Request expired"
}

POST /api/tour/get-result

Запрос:

{
	"requestId":"MnwyMjV8MTAxMzd8MTAwMTd8fDIwMTgtMTAtMTgsMjAxOC0xMC0xOHwwfDcsN3wyfDB8fHww"
}

Обязательный: requestId - Id запроса на поиск тура

Ответ:

[
    {
        "name": "Lincoln Hotel",
        "desc": "Отель в центре Гаваны для экономных невзыскательных туристов. Простые номера и минимальный набор услуг.",
        "stars": 2,
        "min_price": 170420,
        "max_price": 170420,
        "food": [
            {
                "FB": "Полный пансион"
            },
            {
                "BB": "Завтрак"
            },
            {
                "HB": "Полупансион"
            }
        ],
        "link": "https://level.travel/hotels/9061507-Lincoln_Hotel"
    },
    {
        "name": "St. John's & Vedado (Ex Gran Caribe)",
        "desc": "Отель находится в очень оживленном районе, рядом много клубов, кафе, ресторанов. В отеле маленькие номера, скудное меню в ресторане. Для непритязательных туристов и экономичного отдыха.",
        "stars": 3,
        "min_price": 181777,
        "max_price": 181777,
        "food": [
            {
                "HB": "Полупансион"
            },
            {
                "FB": "Полный пансион"
            },
            {
                "BB": "Завтрак"
            }
        ],
        "link": "https://level.travel/hotels/39900-St__Johns_And_Vedado_Ex_Gran_Caribe"
    },
    {
        "name": "St' John",
        "desc": "Приют спокойствия в центре большого города, но в то же время прекрасный выбор для тех, кто ищет близость к развлечениям столицы. Рекомендуем как вариант эконом-отдыха для активных туристов.",
        "stars": 3,
        "min_price": 181777,
        "max_price": 181777,
        "food": [
            {
                "BB": "Завтрак"
            },
            {
                "HB": "Полупансион"
            }
        ],
        "link": "https://level.travel/hotels/9015953-St_John"
    },
    {
        "name": "Nacional",
        "desc": "Самый знаменитый отель Гаваны, где останавливались известные политики, актеры и снимались многие голливудские фильмы о мафии. В отеле сохранены интерьеры, атрибутика и форма обслуживающего персонала 30-х годов прошлого века.",
        "stars": 5,
        "min_price": 227204,
        "max_price": 320898,
        "food": [
            {
                "BB": "Завтрак"
            },
            {
                "HB": "Полупансион"
            }
        ],
        "link": "https://level.travel/hotels/39884-Nacional"
    },
    {
        "name": "Melia Habana",
        "desc": "Отель расположился в деловом районе Мирамар, достаточно близко к историческому центру. Условия размещения и сервис – на высоком уровне, хороший район, есть где погулять вечером. Достойный отель для спокойного или романтического отдыха.",
        "stars": 5,
        "min_price": 232882,
        "max_price": 366798,
        "food": [
            {
                "BB": "Завтрак"
            }
        ],
        "link": "https://level.travel/hotels/39909-Melia_Habana"
    },
    {
        "name": "Iberostar Parque Central",
        "desc": "Отель расположен в историческом центре Гаваны, напротив центрального парка. Рядом с отелем находятся знаменитый Большой театр, Капитолий, Музей искусств, дом Баккарди. В непосредственной близости начинается главная пешеходная улица старой части Гаваны - Obispo. До набережной Малекон можно дойти за 10-15 минут по тенистому бульвару Прадо.",
        "stars": 5,
        "min_price": 249444,
        "max_price": 355441,
        "food": [
            {
                "HB": "Полупансион"
            },
            {
                "BB": "Завтрак"
            }
        ],
        "link": "https://level.travel/hotels/53775-Iberostar_Parque_Central"
    },
    {
        "name": "Melia Cohiba",
        "desc": "Отель находится в районе Ведадо, в некотором удалении от достопримечательностей старой части Гаваны. Просторные номера. В главном ресторане есть комната для молодоженов. В отеле находятся самый оригинальный клуб Habana Cafe и Дом сигар (бар и магазин). Можно рекомендовать взыскательным туристам, деловым людям, а также для проведения конференций.",
        "stars": 5,
        "min_price": 277363,
        "max_price": 420134,
        "food": [
            {
                "BB": "Завтрак"
            },
            {
                "HB": "Полупансион"
            }
        ],
        "link": "https://level.travel/hotels/39912-Melia_Cohiba"
    }
]

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages