1
0
mirror of https://github.com/owncloudarchive/contacts.git synced 2024-11-29 11:24:11 +01:00
OwncloudContactsOfficial/lib/dispatcher.php

117 lines
3.9 KiB
PHP
Raw Normal View History

2013-09-17 18:46:59 +02:00
<?php
/**
2014-01-26 00:40:22 +01:00
* @author Thomas Tanghus
* @copyright 2013-2014 Thomas Tanghus (thomas@tanghus.net)
*
2013-09-17 18:46:59 +02:00
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OCA\Contacts;
use OCP\AppFramework\App as MainApp,
OCP\AppFramework\IAppContainer,
OCA\Contacts\App,
OCA\Contacts\Middleware\Http as HttpMiddleware,
2013-10-17 02:10:34 +02:00
OCA\Contacts\Controller\PageController,
2013-09-17 18:46:59 +02:00
OCA\Contacts\Controller\AddressBookController,
OCA\Contacts\Controller\BackendController,
2013-09-17 18:46:59 +02:00
OCA\Contacts\Controller\GroupController,
OCA\Contacts\Controller\ContactController,
OCA\Contacts\Controller\ContactPhotoController,
OCA\Contacts\Controller\SettingsController,
2013-09-24 13:39:45 +02:00
OCA\Contacts\Controller\ImportController,
OCA\Contacts\Controller\ExportController;
2013-09-17 18:46:59 +02:00
/**
* This class manages our app actions
2013-10-18 15:29:16 +02:00
*
* TODO: Merge with App
2013-09-17 18:46:59 +02:00
*/
class Dispatcher extends MainApp {
/**
* @var string
*/
protected $appName;
2013-09-17 18:46:59 +02:00
/**
2014-04-08 01:19:30 +02:00
* @var \OCA\Contacts\App
2013-09-17 18:46:59 +02:00
*/
protected $app;
/**
* @var \OCP\IServerContainer
*/
protected $server;
/**
2014-04-08 01:19:30 +02:00
* @var \OCP\AppFramework\IAppContainer
*/
protected $container;
public function __construct($params) {
$this->appName = 'contacts';
parent::__construct($this->appName, $params);
2013-09-17 18:46:59 +02:00
$this->container = $this->getContainer();
$this->server = $this->container->getServer();
2013-09-24 13:39:45 +02:00
$this->app = new App($this->container->query('API')->getUserId());
2013-09-17 18:46:59 +02:00
$this->registerServices();
$this->container->registerMiddleware('HttpMiddleware');
2013-09-17 18:46:59 +02:00
}
public function registerServices() {
$app = $this->app;
2014-05-25 08:44:33 +02:00
$appName = $this->appName;
$this->container->registerService('HttpMiddleware', function($container) {
return new HttpMiddleware();
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('PageController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
return new PageController($appName, $request);
2013-10-17 02:10:34 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('AddressBookController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
$api = $container->query('API');
2014-05-25 08:44:33 +02:00
return new AddressBookController($appName, $request, $app, $api);
2013-09-17 18:46:59 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('BackendController', function(IAppContainer $container) use($app, $appName) {
2014-04-10 19:51:52 +02:00
$request = $container->query('Request');
return new BackendController($container, $request, $app);
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('GroupController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
$tags = $container->getServer()->getTagManager()->load('contact');
return new GroupController($appName, $request, $app, $tags);
2013-09-17 18:46:59 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('ContactController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
return new ContactController($appName, $request, $app);
2013-09-17 18:46:59 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('ContactPhotoController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
$cache = $container->getServer()->getCache();
return new ContactPhotoController($appName, $request, $app, $cache);
2013-09-17 18:46:59 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('SettingsController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
return new SettingsController($appName, $request, $app);
2013-09-17 18:46:59 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('ImportController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
$cache = $container->getServer()->getCache();
$tags = $container->getServer()->getTagManager()->load('contact');
return new ImportController($appName, $request, $app, $cache, $tags);
2013-09-24 13:39:45 +02:00
});
2014-05-25 08:44:33 +02:00
$this->container->registerService('ExportController', function(IAppContainer $container) use($app, $appName) {
$request = $container->query('Request');
2014-05-25 08:44:33 +02:00
return new ExportController($appName, $request, $app);
2013-09-17 18:46:59 +02:00
});
}
}