diff --git a/README.md b/README.md index 39ef073..447a0e5 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,28 @@ ## Instalação: +### Configurar módulo principal: + + 1) Copiar `.env.example.php` para `.env.php`; + + 2) Configurar uma `.env.php` para o ambiente desejado; + +Constante | Descrição +--------- | --------- +ENV | Ambiente do sistema: *development* (padrão), *prodution*. Esse valor afeta determinadas funcionalidades. Verifique no código. +JWT_TESTS | Quando verdadeiro permite uso das rotas de testes do JWT. +RESET_JWT_SECRET | Chave para gerar o JWT para redefinir a senha (preencha após configurar o my-jwt, mais abaixo) +RESET_JWT_TIMEOUT | Tempo em segundos para expirar o Token de redefinição de senha + + 4) Neste ponto, já pode testar a rota raiz / + Deve abrir uma página com a mensagem: "Olá API!" + + 5) Para as demais rotas funcionarem é necessário que seu servidor (no caso apache) reconheça .htaccess + Talvez [este artigo](https://www.digitalocean.com/community/questions/htaccess-doesn-t-work-on-ubuntu-droplet) possa ajudar caso tenha problemas com .htaccess . + + Dica: Para testes das rotas recomenda-se o *Insomnia*; + + ### Configurar my-jwt: 1) Aplicar `composer install -d modules/my-jwt/` para instalar a dependência *Carbon*; @@ -40,11 +62,13 @@ MY_JWT_TIMEOUT | Tempo em segundos para expirar o Token /util/jwt/generate-key + Aproveite para preencher a constante RESET_JWT_SECRET em /.env.php (veja na configuração do módulo principal). + ### Configurar my-model: 1) Criar usuário e banco de dados no *MySQL* (pode-se adaptar *MyModel* para outros drivers); - 2) Na pasta `/modules/my-model/` copiar `.config.example.php` para `.config.php` e definir as constantes de conexão ao banco de dados; + 2) Na pasta `/modules/my-model/` copiar `.config.example.php` para `.config.php` e definir as constantes de conexão ao banco de dados: Constante | Descrição --------- | --------- @@ -63,29 +87,11 @@ DB_PASS | Senha do usuário do banco de dados. 4) Tão logo, alterar a senha pela rota `PUT /admin/password`. - 5) Alterar seu administrador (já pela rota `PUT /admin/:id`) e informar no campo email o seu próprio email para possibilitar a recuperação de senha pela API; + 5) Alterar seu administrador (já pela rota `PUT /admin/:id`) e informar no campo email o seu próprio email para possibilitar a recuperação de senha pela API (configure my-sendgrid, logo baixo); NOTA: Novas migrations e seeds poderão ser criados. Para cada nova migration criar o undo correspondente com mesmo nome de arquivo na pasta: `src/database/migrations_undo/`. -### Configurar módulo principal: - - 1) Copiar `.env.example.php` para `.env.php`; - - 2) Configurar uma `.env.php` para o ambiente desejado; - -Constante | Descrição ---------- | --------- -ENV | Ambiente do sistema: *development* (padrão), *prodution*. Esse valor afeta determinadas funcionalidades. Verifique no código. -JWT_TESTS | Quando verdadeiro permite uso das rotas de testes do JWT. -RESET_JWT_SECRET | Chave para gerar o JWT para redefinir a senha -RESET_JWT_TIMEOUT | Tempo em segundos para expirar o Token de redefinição de senha - - 3) Executar os script SQL para criar as tabelas no banco de dados da pasta `/src/database/create_tables`; - - Dica: Para testes das rotas recomenda-se o *Insomnia*; - - ### Configurar módulo my-sendgrid: 1) Aplicar `composer install -d modules/my-sendgrid/` para instalar a dependência *sendgrid*; diff --git a/modules/my-jwt/MyJWT.php b/modules/my-jwt/MyJWT.php index 5561033..e092a56 100644 --- a/modules/my-jwt/MyJWT.php +++ b/modules/my-jwt/MyJWT.php @@ -1,9 +1,20 @@ $message ]); + exit(); + } + require_once $file; +} + $dir = dirname(__FILE__)."/"; -require_once $dir.".config.php"; -require_once $dir.'vendor/autoload.php'; +requireOnceOrAbort($dir.".config.php", "The environment file remains to be defined to my-jwt."); + +requireOnceOrAbort($dir.'vendor/autoload.php', "The vendor/autoload file remains to be defined to my-jwt."); use Carbon\Carbon; class MyJWT { @@ -130,7 +141,6 @@ function validate($token, $key=null) { } function generateToken($data=null, $key=null) { - // get the local secret key //$secret = getenv('SECRET'); //require dirname(__FILE__)."/.config.php"; diff --git a/modules/my-model/.config.example.php b/modules/my-model/.config.example.php index 208bb4a..abeb467 100644 --- a/modules/my-model/.config.example.php +++ b/modules/my-model/.config.example.php @@ -4,4 +4,4 @@ define("DB_HOST", "localhost"); define("DB_NAME", ""); define("DB_USER", ""); -define("DB_PASS", ""); \ No newline at end of file +define("DB_PASS", ""); diff --git a/modules/my-model/MyModel.php b/modules/my-model/MyModel.php index 234bfa4..d251048 100644 --- a/modules/my-model/MyModel.php +++ b/modules/my-model/MyModel.php @@ -492,7 +492,12 @@ function prepare($sql) { } function connect() { - require dirname(__FILE__)."/.config.php"; + $dir = dirname(__FILE__)."/"; + $config_php = $dir.".config.php"; + if (!file_exists($config_php)) { + return false; + } + require $config_php; $dbdriver = DB_DRIVER; $dbhost = DB_HOST; $dbname = DB_NAME; diff --git a/modules/my-sendgrid/.env.example.php b/modules/my-sendgrid/.env.example.php index 083b430..befc354 100644 --- a/modules/my-sendgrid/.env.example.php +++ b/modules/my-sendgrid/.env.example.php @@ -23,6 +23,7 @@ define('MAIL_LOGO_ALT', ""); define('MAIL_LOGO_SRC', ""); +define('MAIL_RESET_ADMIN_URL', ""); define('MAIL_RESET_URL', ""); define('MAIL_FROM_NAME_SIGNATURE', ""); diff --git a/public/index.php b/public/index.php index cfbc29d..5c9abbf 100644 --- a/public/index.php +++ b/public/index.php @@ -1,7 +1,30 @@ "The environment file remains to be defined."]); + exit(); + } + require_once $env_php; require_once "../modules/express-php-lite/autoload.php"; require_once "../modules/my-jwt/autoload.php"; require_once "../modules/my-sendgrid/autoload.php"; diff --git a/src/autoload.php b/src/autoload.php index 6bca0de..48288b3 100644 --- a/src/autoload.php +++ b/src/autoload.php @@ -13,7 +13,7 @@ function apiAutoload($classname) { $lista[] = $dir . "middlewares/$classname.php"; $lista[] = $dir . "$classname.php"; - foreach ($lista as $index => $php) { + foreach ($lista as $php) { if (file_exists($php)) { require_once $php; } diff --git a/src/controllers/ForgotPasswordController.php b/src/controllers/ForgotPasswordController.php index ca01cd1..eea4585 100644 --- a/src/controllers/ForgotPasswordController.php +++ b/src/controllers/ForgotPasswordController.php @@ -1,7 +1,14 @@ "The environment file remains to be defined to my-sendgrid."]); + exit(); +} +require_once $env_php; class ForgotPasswordController { diff --git a/src/controllers/HomeController.php b/src/controllers/HomeController.php index 99338a8..4c76222 100644 --- a/src/controllers/HomeController.php +++ b/src/controllers/HomeController.php @@ -3,7 +3,7 @@ class HomeController { function index($req, $res) { - $res->send("

Olá Virtual Store!

"); + $res->send("

Olá API!

"); } } \ No newline at end of file diff --git a/src/middlewares/Auth.php b/src/middlewares/Auth.php index b61cff8..c903af6 100644 --- a/src/middlewares/Auth.php +++ b/src/middlewares/Auth.php @@ -1,6 +1,11 @@ status(500)->send(['error'=>"The environment file remains to be defined in my-jwt."]); +} + +require_once $jwt_config_php; class Auth {