config = $config; $this->dbCtx = new DatabaseContext($dbConn); $this->authInfo = new AuthInfo; $this->appsCtx = new Apps\AppsContext($dbConn); $this->uploadsCtx = new Uploads\UploadsContext($config, $dbConn); $this->usersCtx = new Users\UsersContext($dbConn); } public function getConfig(): IConfig { return $this->config; } public function getDatabase(): DatabaseContext { return $this->dbCtx; } public function getAuthInfo(): AuthInfo { return $this->authInfo; } public function getAppsContext(): Apps\AppsContext { return $this->appsCtx; } public function getUploadsContext(): Uploads\UploadsContext { return $this->uploadsCtx; } public function getUsersContext(): Users\UsersContext { return $this->usersCtx; } public function createRouting(bool $isApiDomain): RoutingContext { $routingCtx = new RoutingContext($this->config->scopeTo('cors')); if($isApiDomain) { $routingCtx->register(new Auth\AuthRoutes( $this->config->scopeTo('misuzu'), $this->authInfo, $this->usersCtx )); $routingCtx->register(new LandingRoutes($this->dbCtx)); } $routingCtx->register(new Uploads\UploadsRoutes( $this->authInfo, $this->appsCtx, $this->uploadsCtx, $isApiDomain )); return $routingCtx; } }