42 Zeilen
1,1 KiB
PHP
42 Zeilen
1,1 KiB
PHP
<?php
|
|
require_once __DIR__ . '/config.php';
|
|
require_once __DIR__ . '/helpers.php';
|
|
|
|
// Parse: /api/decks/omnis-commands -> ['decks', 'omnis-commands']
|
|
$request_uri = $_SERVER['REQUEST_URI'];
|
|
$path = parse_url($request_uri, PHP_URL_PATH);
|
|
$path = preg_replace('#^/api/?#', '', $path);
|
|
$path = trim($path, '/');
|
|
$segments = $path ? explode('/', $path) : [];
|
|
$resource = $segments[0] ?? '';
|
|
|
|
switch ($resource) {
|
|
case 'login':
|
|
case 'logout':
|
|
case 'me':
|
|
require __DIR__ . '/auth.php';
|
|
break;
|
|
case 'decks':
|
|
require __DIR__ . '/decks.php';
|
|
break;
|
|
case 'cards':
|
|
require __DIR__ . '/cards.php';
|
|
break;
|
|
case 'tutorials':
|
|
require __DIR__ . '/tutorials.php';
|
|
break;
|
|
case 'quiz':
|
|
require __DIR__ . '/quiz.php';
|
|
break;
|
|
case 'cheatsheets':
|
|
require __DIR__ . '/cheatsheets.php';
|
|
break;
|
|
case 'dashboard':
|
|
require __DIR__ . '/dashboard.php';
|
|
break;
|
|
case 'admin':
|
|
require __DIR__ . '/admin.php';
|
|
break;
|
|
default:
|
|
json_error('Unbekannter Endpunkt', 404);
|
|
}
|