76 lines
1.9 KiB
PHP
76 lines
1.9 KiB
PHP
<?php
|
|
namespace EEPROM;
|
|
|
|
use Index\Data\IDbConnection;
|
|
use Syokuhou\IConfig;
|
|
use EEPROM\Auth\AuthInfo;
|
|
|
|
class EEPROMContext {
|
|
private IConfig $config;
|
|
private DatabaseContext $dbCtx;
|
|
|
|
private AuthInfo $authInfo;
|
|
|
|
private Apps\AppsContext $appsCtx;
|
|
private Uploads\UploadsContext $uploadsCtx;
|
|
private Users\UsersContext $usersCtx;
|
|
|
|
public function __construct(IConfig $config, IDbConnection $dbConn) {
|
|
$this->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;
|
|
}
|
|
}
|