<?php
	ini_set('display_errors', 1);
	ini_set('memory_limit', '2048M');
	set_time_limit(300);

	header('Content-Type: application/json');

	define('DS', DIRECTORY_SEPARATOR);
	define('ROOT', dirname(__DIR__) . DS);
	define('SCRIPTS', ROOT . "scripts" . DS);

	$api_key = 'sk_prod_X9v2mK8pL5nQ4rS1tW7xY3zB0cA6dE9fG2hJ5kM8nP1qR4uV7wZ0bC3eF6iH9';

	// 1. Auth
	if (($_SERVER['HTTP_AUTHORIZATION'] ?? '') !== 'Bearer ' . $api_key) {
		http_response_code(403);
		die(json_encode(['error' => 'Acceso denegado']));
	}

	// 2. Router
	$uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

	// 3. Despachador
	// { documento: url_zip, idenficador:  #id, webhook: url_notificacion (POST)}
	// envio al webhook: {identificador: #id, url_pdf: url del pdf generado, error: "el zip no se pudo descromprimir", status: 404/200}
	// 404. -> error
	// 200 -> success
	try {
		switch($uri) {
			case '/api/v1/sajitex/merge_pdf':
				$script = SCRIPTS . "/sajitex/pdf_merge.sh";
				exec("sh $script " . $_POST["documento"], $output);


				break;
			case '/api/v1/reune/coberturas':
				$script = SCRIPTS . "/reune/get_coberturas.sh";
				exec("sh $script " . $_POST["documento"], $output);

				break;
			default:
				http_response_code(404);
				echo json_encode(['error' => 'Endpoint no encontrado']);
				exit(0);
				break;
		}

		if(is_array($output)){
			$output = $output[0];
		}

		if (str_contains($output, "ERROR")) {
			http_response_code(403);
			echo json_encode(["error" => str_replace("ERROR:", "", $output)]);
		} else {
			http_response_code(200);
			echo json_encode(['success' => "ok", "url_pdf" => $output]);
		}
	} catch (Exception $e) {
		http_response_code(500);
		echo json_encode(['error' => $e->getMessage()]);
	}
?>
