Este projeto é uma API RESTful construída com Laravel para gerenciar planos de férias para o ano de 2024. A API permite que os usuários realizem operações CRUD (Criar, Ler, Atualizar, Deletar) em planos de férias.
- Docker
- Composer
- PHP 8.0 ou superior
- MySQL 8.0 ou superior
- Clone o repositório para a sua máquina local.
- Navegue até o diretório do projeto.
- Execute
docker-compose up -d --build
para iniciar os serviços. - Execute
docker exec setup-php composer install
para instalar as dependências do projeto. - Execute
docker exec setup-php php artisan migrate:fresh --seed
para executar as migrações e popular o banco com dados. - Execute
docker exec setup-php php artisan passport:install
para configurar o Passport.
A API possui os seguintes endpoints:
POST /api/v1/login
: Realiza o login e obtem o token para fazer as demais operações.POST /api/v1/logout
: Realiza o logout do usuario na aplicação.POST /api/v1/holiday-plans
: Cria um novo plano de férias.GET /api/v1/holiday-plans
: Recupera todos os planos de férias.GET /api/v1/holiday-plans/{id}
: Recupera um plano de férias específico pelo ID.PUT /api/v1/holiday-plans/{id}
: Atualiza um plano de férias existente.DELETE /api/v1/holiday-plans/{id}
: Deleta um plano de férias.POST /api/v1/holiday-plans/{id}/pdf
: Gera um PDF para um plano de férias específico.
Se você fez o comando php artisan migrate:fresh --seed
, poderá utilizar o usuário definido dentro de UsersTableSeeder.php
O usuário por padrão para os testes é [email protected]
e a senha 12345678
.
a. Com exceção de login, todas as APIS devem ter no Headers a key: Authorization
com o value: Bearer <token>
.
b. Apis POST e PUT devem ter a key: Content-type
e value: application/json
.
c. Para o metodo store e update o body deve ser json, por exemplo:
{
"title": "Férias no Litoral",
"description": "blaskdh kjashd as k jasdhakshdkajshdka",
"date": "2025-10-01",
"location": "Brasil",
"participants": "Família"
}
Para executar os testes unitários, execute o seguinte comando:
php artisan test tests/Feature/Unit/Controller/HolidayPlanControllerTest.php