<?php

function runEndpoint($endpoint_file): ?array
{

    $endpoint_data = $_POST;
    require_once $endpoint_file;

    return endpoint($endpoint_data);
}


function getEndpoint($endpoint_name): string
{
    $output = array();
    $output["Status"] = "Fail";
    global $routerConfig;
    global $routerRequest;

    if(!$endpoint_name){
        $endpoint_name = $routerRequest["site_name"];
    }

    $endpoint_file = $routerConfig["endpoint_dir"] . $endpoint_name . ".php";

    if (file_exists($endpoint_file)){
        $output_tmp = runEndpoint($endpoint_file);
        $output["Endpoint"] = $endpoint_name;
        $type = gettype($output_tmp);
        switch ($type) {
            case 'string':
                $output = $output_tmp;
                $output['Status'] = 'Success';
                break;
            case 'array':
                $output = $output_tmp;
                $output['Status'] = 'Success';
                break;
            case 'bool':
                $output['Status'] = $output_tmp ? 'Success' : 'Fail';
                break;
            default:
                $output['Status'] = 'Fail';
                $output["Error"] = "Endpoint error";
                $output["Type"] = $type;
                http_response_code(500);
        }
    }
    else{
        $output["Error"] = "Not found";
        http_response_code(404);
    }

    return json_encode($output);
}