<?php 
error_reporting(E_ALL & ~E_DEPRECATED); 
 
require 'vendor/autoload.php'; 
 
use src\config\Database; 
use src\controllers\AuthController; 
use Firebase\JWT\JWT; 
use Firebase\JWT\Key; 
 
define('API_KEY', 'godNotExist'); 
 
function isAuthorized() { 
    $headers = getallheaders(); 
    try { 
        if (isset($headers['X-API-KEY']) && $headers['X-API-KEY'] === API_KEY) { 
            return true; 
        } else { 
            throw new Exception("Invalid API Key"); 
        } 
    } catch (Exception $e) { 
        echo json_encode(["message" => "Acesso negado"]); 
        http_response_code(401); 
        exit(); 
    } 
} 
header("Access-Control-Allow-Credentials: true"); 
header("Access-Control-Allow-Origin: http://localhost:8000"); 
header("Content-Type: application/json; charset=UTF-8"); 
header("Access-Control-Allow-Methods: POST, GET, PUT, DELETE, OPTIONS"); 
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With, X-API-KEY, HTTP_X_AUTHORIZATION"); 
 
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__ . '/'); 
$segredojwt = $dotenv->load(); 
 
$database = Database::getInstance($segredojwt); 
$db = $database->getConnection(); 
 
$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$method = $_SERVER['REQUEST_METHOD']; 
switch ($uri) { 
    case '/index.php/auth/register': 
        if ($method == 'POST') { 
            $data = json_decode(file_get_contents("php://input"), true); 
            $controller = new AuthController($db); 
            $response = $controller->register($data); 
            echo json_encode($response); 
        } 
        break; 
    case '/index.php/auth/login': 
        if ($method == 'POST') { 
            $data = json_decode(file_get_contents("php://input"), true); 
            $controller = new AuthController($db); 
            $response = $controller->login($data,$segredojwt); 
            echo json_encode($response); 
        } 
        break; 
        default: 
            echo json_encode(["message" => "Route not found"]); 
            break; 
} 
 
 |