<?php
include "include/kernel.php";
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header('Content-Type: text/plain');
function api_handler($action, $params) {
$action_path = explode(".", $action);
if(count($action_path) < 2) {
return throw new Exception("Action not found");
}
$action_file = __DIR__ . "/actions/{$action_path[0]}.php";
$action_func = $action_path[0] . "_" . $action_path[1] . "_action";
if(!file_exists($action_file)) {
return throw new Exception("`{$action_file}` not found");
}
include $action_file;
if(!function_exists($action_func)) {
return throw new Exception("Action handler `{$action_func}` not found");
}
return $action_func($params);
}
$data = isset($_GET["action"]) ? ["action" => $_GET["action"], "params" => $_GET] : json_decode(file_get_contents('php://input'), true);
if(!$data) {
die();
}
if(!isset($data["action"])) {
die();
}
api_handler($data["action"], $data["params"]);