diff options
| author | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2021-08-20 06:11:05 +0000 |
|---|---|---|
| committer | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2021-08-20 06:11:05 +0000 |
| commit | 9b6bd7e747bd5ed44d169a8e1baee0e519d209d6 (patch) | |
| tree | 104c177e3c0d40d7471d7c081d61dec15cb1bab9 /public/jsonapi.php | |
| parent | 8edcc69d26d73736b1bab92df28a00cd97ab8cf3 (diff) | |
Update der JSONAPI-Bibliotheken, fixes #80
Diffstat (limited to 'public/jsonapi.php')
| -rw-r--r-- | public/jsonapi.php | 62 |
1 files changed, 46 insertions, 16 deletions
diff --git a/public/jsonapi.php b/public/jsonapi.php index 6bc8384..4b32370 100644 --- a/public/jsonapi.php +++ b/public/jsonapi.php @@ -1,30 +1,60 @@ <?php -use JsonApi\AppFactory; -use JsonApi\RouteMap; +use DI\ContainerBuilder; +use Slim\Factory\AppFactory; require '../lib/bootstrap.php'; require '../composer/autoload.php'; -\StudipAutoloader::addAutoloadPath($GLOBALS['STUDIP_BASE_PATH'].DIRECTORY_SEPARATOR.'vendor/oauth-php/library/'); +\StudipAutoloader::addAutoloadPath($GLOBALS['STUDIP_BASE_PATH'] . DIRECTORY_SEPARATOR . 'vendor/oauth-php/library/'); -page_open( - [ - 'sess' => 'Seminar_Session', - 'auth' => 'Seminar_Default_Auth', - 'perm' => 'Seminar_Perm', - 'user' => 'Seminar_User', - ] -); +page_open([ + 'sess' => 'Seminar_Session', + 'auth' => 'Seminar_Default_Auth', + 'perm' => 'Seminar_Perm', + 'user' => 'Seminar_User', +]); // Set base url for URLHelper class URLHelper::setBaseUrl($GLOBALS['CANONICAL_RELATIVE_PATH_STUDIP']); -// create app -$appFactory = new AppFactory(); -$app = $appFactory->makeApp(); +$containerBuilder = new ContainerBuilder(); -// add routes -$app->group('/v1', new RouteMap($app)); +$settings = require 'lib/classes/JsonApi/settings.php'; +$settings($containerBuilder); +$dependencies = require 'lib/classes/JsonApi/dependencies.php'; +$dependencies($containerBuilder); + +// Build PHP_DI Container +$container = $containerBuilder->build(); + +// Instantiate the app +AppFactory::setContainer($container); +$app = AppFactory::create(); +$container->set(\Slim\App::class, $app); + +// Set the base path +$app->setBasePath('/jsonapi.php'); + +// Register middleware +$middleware = require 'lib/classes/JsonApi/middleware.php'; +$middleware($app); + +// Register routes +$routes = require 'lib/classes/JsonApi/routes.php'; +$routes($app); + +// Add Error Middleware +$displayErrors = false; +if (defined('\\Studip\\ENV')) { + $displayErrors = constant('\\Studip\\ENV') === 'development'; +} +$logError = true; +$logErrorDetails = true; + +$errorMiddleware = $app->addErrorMiddleware($displayErrors, $logError, $logErrorDetails); +$errorMiddleware->setDefaultErrorHandler(new \JsonApi\Errors\ErrorHandler($app)); + +// Run app $app->run(); |
