Exemplo n.º 1
0
 protected function _onAccessible()
 {
     $this->_driver = new JsonDriver();
     $this->_driver->commandNamespaces[] = $this->task->module->namespace . 'Commands\\';
     /** @var ManagedModule $m */
     $m = $this->task->module;
     foreach ($m->plugins as $plugin) {
         if ($plugin->extendsService) {
             $this->_driver->commandNamespaces[] = $plugin->namespace . 'Commands\\';
         }
     }
     $this->_driver->processTask($this->task);
 }
Exemplo n.º 2
0
 /** @param $task Task */
 public function processTask($task)
 {
     parent::processTask($task);
     $data = $task->request->post->get('commands');
     if (!is_string($data)) {
         $this->postResults(array(ServiceResult::createWithError('error', 'No data', '::GLOBAL::')));
         return;
     }
     if (strlen($data) > $this->maxPackageSize) {
         $this->postResults(array(ServiceResult::createWithError('error', 'Data too large', '::GLOBAL::')));
         return;
     }
     $data = json_decode($data, true);
     if (json_last_error() != JSON_ERROR_NONE || !is_array($data)) {
         $this->postResults(array(ServiceResult::createWithError('error', 'Invalid data', '::GLOBAL::')));
         return;
     }
     $results = array();
     $f = new ArrayFilter();
     foreach ($data as $command) {
         if (!is_array($command)) {
             $this->postResults(array(ServiceResult::createWithError('error', 'Invalid data', '::GLOBAL::')));
             return;
         }
         $f->setData($command);
         $id = $f->get('id');
         $command = $f->get('command');
         $data = $f->asFilter('data');
         $results[] = $this->_executeCommand($command, $data, $id);
     }
     $this->postResults($results);
 }
Exemplo n.º 3
0
 public function parseTask()
 {
     $this->_driver = new JsonDriver();
     $this->_driver->commandNamespaces = ServiceFactory::get($this->app, $this->task->module->id)->appConfig()->commandNamespaces;
     $this->_driver->processTask($this->task);
 }