bindAPI/public/index.php

50 lines
1.3 KiB
PHP
Raw Normal View History

<?php declare(strict_types=1);
namespace App\Controller;
2022-01-18 19:14:24 +01:00
use Exception;
error_reporting(error_level: E_ALL);
require dirname(path: __DIR__) . '/vendor/autoload.php';
2022-01-18 19:14:24 +01:00
2022-01-22 17:31:29 +01:00
// read config
$configFile = dirname(path: __DIR__) . "/config.json";
$configJSON = file_get_contents(filename: $configFile);
$config = json_decode(json: $configJSON, associative: true);
2022-01-22 17:31:29 +01:00
// TODO only valid clients?
header(header: "Access-Control-Allow-Origin: *");
header(header: "Content-Type: application/json; charset=UTF-8");
header(header: "Access-Control-Allow-Methods: OPTIONS,GET,POST,PUT,DELETE");
header(header: "Access-Control-Max-Age: 3600");
header(header: "Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
2022-01-18 19:14:24 +01:00
// TODO make a log class
$oFile = fopen(filename: 'log.txt', mode: 'a');
2022-01-18 19:14:24 +01:00
$uri = parse_url(url: $_SERVER['REQUEST_URI'], component: PHP_URL_PATH);
fputs(stream: $oFile, data: $uri . PHP_EOL);
fclose(stream: $oFile);
2022-01-18 19:14:24 +01:00
$uri = explode(separator: '/', string: $uri);
2022-01-18 19:14:24 +01:00
if ($uri[1] !== 'api') {
header(header: "HTTP/1.1 404 Not Found");
2022-01-18 19:14:24 +01:00
exit();
}
$requestMethod = $_SERVER["REQUEST_METHOD"];
try {
$controller = new RequestController(config: $config, requestMethod: $requestMethod, uri: $uri);
$controller->processRequest();
} catch (Exception $e) {
echo json_encode(value: [
'error' => $e->getMessage()
]);
}
2022-01-18 19:14:24 +01:00