. */ namespace SP\Modules\Web\Controllers; use DI\Container; use Klein\Klein; use SP\Core\Context\SessionContext; use SP\Services\ServiceException; use SP\Services\Task\Task; use SP\Services\Task\TaskFactory; use SP\Services\Task\TaskService; /** * Class TaskController * * @package SP\Modules\Web\Controllers */ final class TaskController { /** * @var Container */ private $container; /** * TaskController constructor. * * @param Container $container * * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ public function __construct(Container $container) { $this->container = $container; } /** * @param string $taskId * * @throws \Psr\Container\ContainerExceptionInterface * @throws \Psr\Container\NotFoundExceptionInterface */ public function runTaskAction($taskId) { SessionContext::close(); $router = $this->container->get(Klein::class); $router->response()->header('Content-Type', 'text/event-stream'); $router->response()->header('Cache-Control', 'no-store, no-cache'); $router->response()->header('Access-Control-Allow-Origin', '*'); $router->response()->send(true); try { $this->container->get(TaskService::class)->run($taskId); } catch (ServiceException $e) { processException($e); } } /** * @param $taskId */ public function testTaskAction($taskId) { $task = TaskFactory::create($taskId, Task::genTaskId($taskId)); TaskFactory::update($task->getTaskId(), TaskFactory::createMessage($task->getTaskId(), 'Test Task')); echo $task->getTaskId(); } }