<?php 
/** 
 * @author     Pierre-Henry Soria <[email protected]> 
 * @website    https://ph7.me 
 * @license    MIT License 
 */ 
 
namespace PH7\ApiSimpleMenu\Route; 
 
use PH7\ApiSimpleMenu\Route\Exception\NotFoundException; 
use PH7\ApiSimpleMenu\Service\Exception\CredentialsInvalidException; 
use PH7\ApiSimpleMenu\Validation\Exception\InvalidValidationException; 
use PH7\JustHttp\StatusCode; 
use PH7\PhpHttpResponseHeader\Http as HttpResponse; 
 
$resource = $_REQUEST['resource'] ?? null; 
 
try { 
    return match ($resource) { 
        'user' => require_once 'user.routes.php', 
        'item' => require_once 'food-item.routes.php', 
        default => require_once 'not-found.routes.php', 
    }; 
} catch (CredentialsInvalidException $e) { 
    response([ 
        'errors' => [ 
            'message' => $e->getMessage() 
        ] 
    ]); 
} catch (InvalidValidationException $e) { 
    // Send 400 http status code 
    HttpResponse::setHeadersByCode(StatusCode::BAD_REQUEST); 
 
    response([ 
        'errors' => [ 
            'message' => $e->getMessage(), 
            'code' => $e->getCode() 
        ] 
    ]); 
} catch (NotFoundException $e) { 
    // FYI, not-found.Route already sends a 404 Not Found HTTP code 
    return require_once 'not-found.routes.php'; 
} 
 
 |