public function __construct(array $urlParams = array())
{
parent::__construct('ocsms', $urlParams);
$container = $this->getContainer();
$server = $container->query('ServerContainer');
$container->registerService('UserId', function ($c) use($server) {
return $server->getUserSession()->getUser()->getUID();
});
/**
* Database Layer
*/
$container->registerService('ConfigMapper', function (IContainer $c) use($server) {
return new ConfigMapper($server->getDb(), $c->query('UserId'), $server->getCrypto());
});
$container->registerService('Sms', function (IContainer $c) use($server) {
return new Sms($server->getDb());
});
$container->registerService('ConversationStateMapper', function (IContainer $c) use($server) {
return new ConversationStateMapper($server->getDb());
});
$container->registerService('SmsMapper', function (IContainer $c) use($server) {
return new SmsMapper($server->getDb(), $c->query('ConversationStateMapper'));
});
/**
* Managers
*/
$container->registerService('ContactsManager', function (IContainer $c) use($server) {
return $server->getContactsManager();
});
/**
* Controllers
*/
$container->registerService('SettingsController', function (IContainer $c) {
return new SettingsController($c->query('AppName'), $c->query('Request'), $c->query('ConfigMapper'));
});
$container->registerService('SmsController', function (IContainer $c) use($server) {
return new SmsController($c->query('AppName'), $c->query('Request'), $c->query('UserId'), $c->query('SmsMapper'), $c->query('ConversationStateMapper'), $c->query('ConfigMapper'), $server->getContactsManager(), $server->getURLGenerator());
});
$container->registerService('ApiController', function (IContainer $c) {
return new ApiController($c->query('AppName'), $c->query('Request'), $c->query('UserId'), $c->query('SmsMapper'));
});
/**
* Migration services
*/
$container->registerService('OCA\\OcSms\\Migration\\FixConversationReadStates', function ($c) {
return new FixConversationReadStates($c->query('ConversationStateMapper'), $c->getServer()->getUserManager());
});
}