- Composer: 2.0.9
- PHP: 8.2.8
- Laravel: 9.19
- Clone o repositório do projeto:
git clone https://github.com/paulovitorw1/core-plan-marketing.git
- Instale as dependências do projeto:
composer install
- Copie o arquivo de configuração .env:
cp .env.example .env
- Configure o arquivo .env com as informações da API:
sed -i 's/API_BASE_URL=.*/API_BASE_URL=url_api/' .env sed -i 's/API_USERNAME=.*/API_USERNAME=seu_usuario/' .env sed -i 's/API_PASSWORD=.*/API_PASSWORD=sua_senha/' .env
- Gere a chave da aplicação:
php artisan key:generate
- Inicie o servidor de desenvolvimento do Laravel na porta: 7667:
php artisan serve --port=7667
- Acesse o projeto no navegador através do endereço http://localhost:7667:
Este endpoint retorna uma lista de cidades.
Nenhum.
URL: /api/cities
{
"data": [
{
"id": "ROD_3762",
"name": "Punta Del Este, UY",
"url": "punta-del-este-uy",
"type": "station"
},
{
"id": "ROD_3764",
"name": "Itaberaba",
"url": "itaberaba-ba",
"type": "station"
}
],
"response": {
"success": true,
"message": "Cidades listadas com sucesso"
}
}
Este endpoint permite pesquisar passagens com base nos critérios fornecidos.
O corpo da solicitação deve conter os seguintes parâmetros:
from
(string): O nome da cidade de partida.to
(string): O nome da cidade de chegada.travelDate
(string): A data da viagem no formato "YYYY-MM-DD".nameDepartureCity
(string): O nome da cidade de partida.nameArrivalCity
(string): O nome da cidade de chegada.
URL: /api/search/passage
{
"from": "São Paulo, SP",
"to": "Belo Horizonte, MG",
"travelDate": "2023-08-08",
"nameDepartureCity": "São Paulo, SP - Barra Funda",
"nameArrivalCity": "Belo Horizonte, MG - Gov. Israel Pinto"
}
{
"data": [
{
"id": "1_8ab3b78a799a3f1356dff5138ca85cce",
"company": {
"id": "2",
"name": "1001"
},
"from": {
"id": "ROD_898",
"name": "São Paulo, SP - Barra Funda"
},
"to": {
"id": "ROD_61",
"name": "Belo Horizonte, MG - Gov. Israel Pinto"
},
"availableSeats": 18,
"withBPE": true,
"departure": {
"date": "2023-08-08",
"time": "04:30:00"
},
"arrival": {
"date": "2023-08-08",
"time": "11:55:00"
},
"travelDuration": 26700,
"seatClass": "SEMI LEITO",
"price": {
"seatPrice": 100,
"taxPrice": 18,
"price": 118
},
"insurance": 9.95,
"allowCanceling": true,
"travelCancellationLimitDate": "2023-08-08 00:30:00"
}
],
"response": {
"success": true,
"message": "Passagens listadas com sucesso"
}
}
Status de resposta: 422 Unprocessable Entity
{
"response": {
"success": false,
"message": "Passagens disponíveis somente para as cidades de SP e PR.",
"message_error": "Tickets available only for cities in SP and PR"
}
}
Este endpoint permite pesquisar assentos disponíveis para um determinado ID de viagem.
O corpo da solicitação deve conter o seguinte parâmetro:
travelId
(string): O ID da viagem.
URL: /api/search/seats
{
"travelId": "1_8ab3b78a799a3f1356dff5138ca85cce"
}
{
"data": [
{
"seat": "01",
"position": {
"x": 1,
"y": 0,
"z": 0
},
"occupied": true,
"type": "seat"
}
],
"response": {
"success": true,
"message": "Assentos listados com sucesso."
}
}