Use automatic injection whenever possible

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2017-08-02 14:34:51 +02:00
parent bc54e6ff7c
commit 81c54ea515
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
6 changed files with 38 additions and 80 deletions

View File

@ -24,77 +24,29 @@
namespace OCA\Federation\AppInfo; namespace OCA\Federation\AppInfo;
use OCA\Federation\Controller\SettingsController;
use OCA\Federation\DAV\FedAuth; use OCA\Federation\DAV\FedAuth;
use OCA\Federation\DbHandler;
use OCA\Federation\Hooks; use OCA\Federation\Hooks;
use OCA\Federation\Middleware\AddServerMiddleware; use OCA\Federation\Middleware\AddServerMiddleware;
use OCA\Federation\SyncFederationAddressBooks; use OCP\AppFramework\App;
use OCA\Federation\TrustedServers;
use OCP\AppFramework\IAppContainer;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\SabrePluginEvent; use OCP\SabrePluginEvent;
use OCP\Util; use OCP\Util;
use Sabre\DAV\Auth\Plugin; use Sabre\DAV\Auth\Plugin;
use Sabre\DAV\Server;
class Application extends \OCP\AppFramework\App { class Application extends App {
/** /**
* @param array $urlParams * @param array $urlParams
*/ */
public function __construct($urlParams = array()) { public function __construct($urlParams = []) {
parent::__construct('federation', $urlParams); parent::__construct('federation', $urlParams);
$this->registerService();
$this->registerMiddleware(); $this->registerMiddleware();
} }
private function registerService() {
$container = $this->getContainer();
$container->registerService('addServerMiddleware', function(IAppContainer $c) {
return new AddServerMiddleware(
$c->getAppName(),
\OC::$server->getL10N($c->getAppName()),
\OC::$server->getLogger()
);
});
$container->registerService('DbHandler', function(IAppContainer $c) {
return new DbHandler(
\OC::$server->getDatabaseConnection(),
\OC::$server->getL10N($c->getAppName())
);
});
$container->registerService('TrustedServers', function(IAppContainer $c) {
$server = $c->getServer();
return new TrustedServers(
$c->query('DbHandler'),
$server->getHTTPClientService(),
$server->getLogger(),
$server->getJobList(),
$server->getSecureRandom(),
$server->getConfig(),
$server->getEventDispatcher(),
$server->query(ITimeFactory::class)
);
});
$container->registerService('SettingsController', function (IAppContainer $c) {
$server = $c->getServer();
return new SettingsController(
$c->getAppName(),
$server->getRequest(),
$server->getL10N($c->getAppName()),
$c->query('TrustedServers')
);
});
}
private function registerMiddleware() { private function registerMiddleware() {
$container = $this->getContainer(); $container = $this->getContainer();
$container->registerMiddleware('addServerMiddleware'); $container->registerAlias('AddServerMiddleware', AddServerMiddleware::class);
$container->registerMiddleWare('AddServerMiddleware');
} }
/** /**
@ -104,7 +56,7 @@ class Application extends \OCP\AppFramework\App {
public function registerHooks() { public function registerHooks() {
$container = $this->getContainer(); $container = $this->getContainer();
$hooksManager = new Hooks($container->query('TrustedServers')); $hooksManager = $container->query(Hooks::class);
Util::connectHook( Util::connectHook(
'OCP\Share', 'OCP\Share',
@ -113,28 +65,18 @@ class Application extends \OCP\AppFramework\App {
'addServerHook' 'addServerHook'
); );
$dispatcher = $this->getContainer()->getServer()->getEventDispatcher(); $dispatcher = $container->getServer()->getEventDispatcher();
$dispatcher->addListener('OCA\DAV\Connector\Sabre::authInit', function($event) use($container) { $dispatcher->addListener('OCA\DAV\Connector\Sabre::authInit', function($event) use($container) {
if ($event instanceof SabrePluginEvent) { if ($event instanceof SabrePluginEvent) {
$authPlugin = $event->getServer()->getPlugin('auth'); $server = $event->getServer();
if ($authPlugin instanceof Plugin) { if ($server instanceof Server) {
$h = new DbHandler($container->getServer()->getDatabaseConnection(), $authPlugin = $server->getPlugin('auth');
$container->getServer()->getL10N('federation') if ($authPlugin instanceof Plugin) {
); $authPlugin->addBackend($container->query(FedAuth::class));
$authPlugin->addBackend(new FedAuth($h)); }
} }
} }
}); });
} }
/**
* @return SyncFederationAddressBooks
*/
public function getSyncService() {
$syncService = \OC::$server->query('CardDAVSyncService');
$dbHandler = $this->getContainer()->query('DbHandler');
$discoveryService = \OC::$server->query(\OCP\OCS\IDiscoveryService::class);
return new SyncFederationAddressBooks($dbHandler, $syncService, $discoveryService);
}
} }

View File

@ -36,7 +36,7 @@ class SyncFederationAddressBooks extends Command {
/** /**
* @param \OCA\Federation\SyncFederationAddressBooks $syncService * @param \OCA\Federation\SyncFederationAddressBooks $syncService
*/ */
function __construct(\OCA\Federation\SyncFederationAddressBooks $syncService) { public function __construct(\OCA\Federation\SyncFederationAddressBooks $syncService) {
parent::__construct(); parent::__construct();
$this->syncService = $syncService; $this->syncService = $syncService;

View File

@ -26,7 +26,6 @@ namespace OCA\Federation\Controller;
use OC\HintException; use OC\HintException;
use OCA\Federation\TrustedServers; use OCA\Federation\TrustedServers;
use OCP\AppFramework\Controller; use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IL10N; use OCP\IL10N;
use OCP\IRequest; use OCP\IRequest;

View File

@ -63,6 +63,6 @@ class FedAuth extends AbstractBasic {
/** /**
* @inheritdoc * @inheritdoc
*/ */
function challenge(RequestInterface $request, ResponseInterface $response) { public function challenge(RequestInterface $request, ResponseInterface $response) {
} }
} }

View File

@ -43,6 +43,11 @@ class AddServerMiddleware extends Middleware {
/** @var ILogger */ /** @var ILogger */
protected $logger; protected $logger;
/**
* @param string $appName
* @param IL10N $l
* @param ILogger $logger
*/
public function __construct($appName, IL10N $l, ILogger $logger) { public function __construct($appName, IL10N $l, ILogger $logger) {
$this->appName = $appName; $this->appName = $appName;
$this->l = $l; $this->l = $l;
@ -56,6 +61,7 @@ class AddServerMiddleware extends Middleware {
* @param string $methodName * @param string $methodName
* @param \Exception $exception * @param \Exception $exception
* @return JSONResponse * @return JSONResponse
* @throws \Exception
*/ */
public function afterException($controller, $methodName, \Exception $exception) { public function afterException($controller, $methodName, \Exception $exception) {
if (($controller instanceof SettingsController) === false) { if (($controller instanceof SettingsController) === false) {

View File

@ -24,20 +24,31 @@ namespace OCA\Federation;
use OC\BackgroundJob\TimedJob; use OC\BackgroundJob\TimedJob;
use OCA\Federation\AppInfo\Application; use OCA\Federation\AppInfo\Application;
use OCP\ILogger;
class SyncJob extends TimedJob { class SyncJob extends TimedJob {
public function __construct() { /** @var SyncFederationAddressBooks */
protected $syncService;
/** @var ILogger */
protected $logger;
/**
* @param SyncFederationAddressBooks $syncService
* @param ILogger $logger
*/
public function __construct(SyncFederationAddressBooks $syncService, ILogger $logger) {
// Run once a day // Run once a day
$this->setInterval(24 * 60 * 60); $this->setInterval(24 * 60 * 60);
$this->syncService = $syncService;
$this->logger = $logger;
} }
protected function run($argument) { protected function run($argument) {
$app = new Application(); $this->syncService->syncThemAll(function($url, $ex) {
$ss = $app->getSyncService();
$ss->syncThemAll(function($url, $ex) {
if ($ex instanceof \Exception) { if ($ex instanceof \Exception) {
\OC::$server->getLogger()->error("Error while syncing $url : " . $ex->getMessage(), ['app' => 'fed-sync']); $this->logger->error("Error while syncing $url : " . $ex->getMessage(), ['app' => 'fed-sync']);
} }
}); });
} }