Skip to content

Commit

Permalink
Diversas correções para deploy
Browse files Browse the repository at this point in the history
  • Loading branch information
jairpro committed Sep 19, 2020
1 parent 922c565 commit 1a1bfb4
Show file tree
Hide file tree
Showing 10 changed files with 87 additions and 30 deletions.
46 changes: 26 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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*;
Expand All @@ -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
--------- | ---------
Expand All @@ -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*;
Expand Down
16 changes: 13 additions & 3 deletions modules/my-jwt/MyJWT.php
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
<?php

function requireOnceOrAbort($file, $message) {
if (!file_exists($file)) {
header("HTTP/1.1 500 Internal Server error");
header("Content-Type: application/json; charset=utf-8");
echo json_encode(['error'=> $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 {
Expand Down Expand Up @@ -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";
Expand Down
2 changes: 1 addition & 1 deletion modules/my-model/.config.example.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
define("DB_HOST", "localhost");
define("DB_NAME", "");
define("DB_USER", "");
define("DB_PASS", "");
define("DB_PASS", "");
7 changes: 6 additions & 1 deletion modules/my-model/MyModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
1 change: 1 addition & 0 deletions modules/my-sendgrid/.env.example.php
Original file line number Diff line number Diff line change
Expand Up @@ -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', "");
Expand Down
25 changes: 24 additions & 1 deletion public/index.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,30 @@
<?php
ini_set("error_log", "../php_errors.log");

require_once "../.env.php";
header('Access-Control-Allow-Origin: *');
//header('Access-Control-Allow-Origin: https://admin.sistemanuvem.com/');
//header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 60');
header('Access-Control-Allow-Headers: AccountKey,x-requested-with, Content-Type, origin, authorization, accept, client-security-token, host, date, cookie, cookie2');
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');

$method = $_SERVER['REQUEST_METHOD'];
if ($method==='OPTIONS') {
header('Content-Type', 'application/json');
exit();
}




$env_php = "../.env.php";
if (!file_exists($env_php)) {
header("HTTP/1.1 500 Internal Server error");
header("Content-Type: application/json; charset=utf-8");
echo json_encode(['error'=>"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";
Expand Down
2 changes: 1 addition & 1 deletion src/autoload.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down
9 changes: 8 additions & 1 deletion src/controllers/ForgotPasswordController.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,14 @@
<?php

$dir = dirname(__FILE__)."/";
require_once $dir."../../modules/my-sendgrid/.env.php";
$env_php = $dir."../../modules/my-sendgrid/.env.php";
if (!file_exists($env_php)) {
header("HTTP/1.1 500 Internal Server error");
header("Content-Type: application/json; charset=utf-8");
echo json_encode(['error'=>"The environment file remains to be defined to my-sendgrid."]);
exit();
}
require_once $env_php;

class ForgotPasswordController {

Expand Down
2 changes: 1 addition & 1 deletion src/controllers/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
class HomeController {

function index($req, $res) {
$res->send("<h1>Olá Virtual Store!</h1>");
$res->send("<h1>Olá API!</h1>");
}

}
7 changes: 6 additions & 1 deletion src/middlewares/Auth.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
<?php

require_once dirname(__FILE__)."/../../modules/my-jwt/.config.php";
$jwt_config_php = dirname(__FILE__)."/../../modules/my-jwt/.config.php";
if (!file_exists($jwt_config_php)) {
Response::getInstance()->status(500)->send(['error'=>"The environment file remains to be defined in my-jwt."]);
}

require_once $jwt_config_php;

class Auth {

Expand Down

0 comments on commit 1a1bfb4

Please sign in to comment.