mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-02 19:52:44 +01:00
63 lines
1.5 KiB
PHP
63 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
final class HeraldCallWebhookAction extends HeraldAction {
|
||
|
|
||
|
const ACTIONCONST = 'webhook';
|
||
|
const DO_WEBHOOK = 'do.call-webhook';
|
||
|
|
||
|
public function getHeraldActionName() {
|
||
|
return pht('Call webhooks');
|
||
|
}
|
||
|
|
||
|
public function getActionGroupKey() {
|
||
|
return HeraldUtilityActionGroup::ACTIONGROUPKEY;
|
||
|
}
|
||
|
|
||
|
public function supportsObject($object) {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
public function supportsRuleType($rule_type) {
|
||
|
return ($rule_type !== HeraldRuleTypeConfig::RULE_TYPE_PERSONAL);
|
||
|
}
|
||
|
|
||
|
public function applyEffect($object, HeraldEffect $effect) {
|
||
|
$adapter = $this->getAdapter();
|
||
|
$rule = $effect->getRule();
|
||
|
$target = $effect->getTarget();
|
||
|
|
||
|
foreach ($target as $webhook_phid) {
|
||
|
$adapter->queueWebhook($webhook_phid, $rule->getPHID());
|
||
|
}
|
||
|
|
||
|
$this->logEffect(self::DO_WEBHOOK, $target);
|
||
|
}
|
||
|
|
||
|
public function getHeraldActionStandardType() {
|
||
|
return self::STANDARD_PHID_LIST;
|
||
|
}
|
||
|
|
||
|
protected function getActionEffectMap() {
|
||
|
return array(
|
||
|
self::DO_WEBHOOK => array(
|
||
|
'icon' => 'fa-cloud-upload',
|
||
|
'color' => 'green',
|
||
|
'name' => pht('Called Webhooks'),
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function renderActionDescription($value) {
|
||
|
return pht('Call webhooks: %s.', $this->renderHandleList($value));
|
||
|
}
|
||
|
|
||
|
protected function renderActionEffectDescription($type, $data) {
|
||
|
return pht('Called webhooks: %s.', $this->renderHandleList($data));
|
||
|
}
|
||
|
|
||
|
protected function getDatasource() {
|
||
|
return new HeraldWebhookDatasource();
|
||
|
}
|
||
|
|
||
|
}
|