Move webhook to project notification type

This commit is contained in:
Frederic Guillot
2015-10-17 12:30:05 -04:00
parent 3543f45c2d
commit 472f94efee
18 changed files with 311 additions and 129 deletions

View File

@@ -13,7 +13,7 @@ use Pimple\Container;
abstract class NotificationType extends Base
{
/**
* Mail transport instances
* Container
*
* @access private
* @var \Pimple\Container
@@ -21,13 +21,21 @@ abstract class NotificationType extends Base
private $classes;
/**
* Mail transport instances
* Notification type labels
*
* @access private
* @var array
*/
private $labels = array();
/**
* Hidden notification types
*
* @access private
* @var array
*/
private $hiddens = array();
/**
* Constructor
*
@@ -47,15 +55,24 @@ abstract class NotificationType extends Base
* @param string $type
* @param string $label
* @param string $class
* @param boolean $hidden
* @return NotificationType
*/
public function setType($type, $label, $class)
public function setType($type, $label, $class, $hidden = false)
{
$container = $this->container;
$this->labels[$type] = $label;
if ($hidden) {
$this->hiddens[] = $type;
} else {
$this->labels[$type] = $label;
}
$this->classes[$type] = function () use ($class, $container) {
return new $class($container);
};
return $this;
}
/**
@@ -80,4 +97,15 @@ abstract class NotificationType extends Base
{
return $this->labels;
}
/**
* Get all hidden notification types
*
* @access public
* @return array
*/
public function getHiddenTypes()
{
return $this->hiddens;
}
}