| 
<?php
 use BankApi\Db\Sql;
 use BankApi\Routes;
 use Mateodioev\HttpRouter\Router;
 use BankApi\Models\Error as ErrorResponse;
 use Mateodioev\HttpRouter\exceptions\{HttpNotFoundException, RequestException};
 
 require __DIR__ . '/vendor/autoload.php';
 
 Sql::prepare(__DIR__);
 $router = new Router;
 
 Routes::register($router);
 
 try {
 $router->run();
 } catch (HttpNotFoundException $e) {
 $router->send(ErrorResponse::json($e->getMessage() ?? 'Not found', $e->getCode() ?: 404));
 } catch (RequestException $e) {
 $router->send(ErrorResponse::json($e->getMessage() ?? 'Server error', $e->getCode() ?: 500));
 } catch (Exception $e) {
 $router->send(ErrorResponse::json('Unknown error', 500));
 // $router->send(ErrorResponse::json($e->getMessage(), 500));
 }
 
 |