/** * @param ActionDto $dto * @return null */ public function processAction(ActionDto $dto) { $container = Registry::get('container'); $commandName = $dto->get('command'); /** @var CommandHandlerInterface $command */ $command = $container['command_' . $commandName]; if (null === $command) { return; } $command->processCommand($dto->get('args'), $dto->get('channel')); }
/** * @param ActionDto $dto * @return null */ public function processAction(ActionDto $dto) { if ($this->conditionResolver->isConditionMet($dto->get('condition'), Variables::all())) { $this->processActions($dto->get('then')); } else { $else = $dto->get('else'); if (is_array($else) && count($else) > 0) { $this->processActions($else); } } }
/** * @param ActionDto $dto * @return null */ private function processUntilLoop(ActionDto $dto) { $actions = $dto->get('actions'); while (!$this->conditionResolver->isConditionMet($dto->get('condition'), Variables::all())) { if (true === Variables::get('flowcontrol.continue')) { Variables::remove('flowcontrol.continue'); continue; } if (true === Variables::get('flowcontrol.break')) { Variables::remove('flowcontrol.break'); break; } $this->processActions($actions); } }
/** * @param ActionDto $dto * @return null */ public function processAction(ActionDto $dto) { $name = $dto->get('name'); $value = $dto->get('value'); switch ((string) $value) { case 'increment': Variables::set($name, Variables::get($name) + 1); break; case 'decrement': Variables::set($name, Variables::get($name) - 1); break; default: Variables::set($name, $value); } }
/** * @param ActionDto $dto * @return null */ public function processAction(ActionDto $dto) { $this->dtoData = $dto->getData(); $recipient = $dto->get('recipient'); $this->recipientId = $this->slackFacade->getUserIdByName(str_replace('@', '', $recipient)); $messages = $dto->get('messages'); // 1. Send "before" message $beforeMessage = Ar::get($messages, 'before'); if (null !== $beforeMessage) { $this->slackFacade->getSlackApi()->chatPostMessage($this->recipientId, $beforeMessage); } // 2. Register timed message handler $this->handlerId = uniqid(); $start = time(); $finish = $start + $this->getTimeoutSize($dto->get('timeout')); $this->coreProcessor->addTimedMessageHandler($this->handlerId, [$this, 'checker'], [$this, 'handler'], $start, $finish); }
/** * @param ActionDto $dto * @return null */ public function processAction(ActionDto $dto) { $recipients = preg_split('/\\s*,\\s*/', $dto->get('recipients')); if (0 === count($recipients)) { return; } $recipientIds = []; foreach ($recipients as $recipient) { if ($recipient !== null) { $recipientIds[] = $this->slackFacade->getRecipientIdByName($recipient); } } if (0 === count($recipientIds)) { return; } $message = $dto->getMessage(); $message = $this->substituteVariables($message); $dto->setData(array_merge($dto->getData(), ['message' => $message])); $this->outputManager->sendMessage($dto); }
/** * @param ActionDto $dto * @param array $data */ protected function populateActionDto(ActionDto $dto, $data) { $dto->setData($data); }
/** * @param ActionDto $dto */ public function sendMessage(ActionDto $dto) { $recipients = $this->parseRecipients($dto->getRecipients()); $this->slackFacade->multiSendMessage($recipients, $dto->getMessage(), ['as_user' => true]); }
/** * @param ActionDto $dto * @return bool */ public function canProcessAction(ActionDto $dto) { return 'break' === $dto->getAction(); }
/** * @param ActionDto $dto * @return bool */ public function canProcessAction(ActionDto $dto) { return 'continue' === $dto->getAction(); }
/** * @param ActionDto $dto * @param $data */ private function populateDto(ActionDto $dto, $data) { $dto->setData($data); }