/** * Get all resource ids by resource type * * @param ilECSSetting $server * @param array $a_types * @param bool $a_sender_only * @return array type => ids */ protected static function getAllResourceIds(ilECSSetting $server, array $a_types, $a_sender_only = false) { include_once 'Services/WebServices/ECS/classes/class.ilRemoteObjectBase.php'; $list = array(); foreach ($a_types as $type) { $robj = ilRemoteObjectBase::getInstanceByEventType($type); if ($robj) { $list[$type] = $robj->getAllResourceIds($server, $a_sender_only); } } return $list; }
public static function _lookupOrganization($a_obj_id) { return ilRemoteObjectBase::_lookupOrganization($a_obj_id, self::DB_TABLE_NAME); }
/** * Handle events * * @access private * */ private function handleEvents() { include_once './Services/WebServices/ECS/classes/class.ilECSEvent.php'; for ($i = 0; $i < self::MAX_TASKS; $i++) { if (!($event = $this->event_reader->shift())) { $this->log->write(__METHOD__ . ': No more pending events found. DONE'); break; } $this->log->write(print_r($event, true)); // determine event handler switch ($event['type']) { case ilECSEventQueueReader::TYPE_REMOTE_COURSE: case ilECSEventQueueReader::TYPE_REMOTE_CATEGORY: case ilECSEventQueueReader::TYPE_REMOTE_FILE: case ilECSEventQueueReader::TYPE_REMOTE_GLOSSARY: case ilECSEventQueueReader::TYPE_REMOTE_GROUP: case ilECSEventQueueReader::TYPE_REMOTE_LEARNING_MODULE: case ilECSEventQueueReader::TYPE_REMOTE_WIKI: case ilECSEventQueueReader::TYPE_REMOTE_TEST: include_once 'Services/WebServices/ECS/classes/class.ilRemoteObjectBase.php'; $handler = ilRemoteObjectBase::getInstanceByEventType($event['type']); $this->log->write("got handler " . get_class($handler)); break; case ilECSEventQueueReader::TYPE_DIRECTORY_TREES: include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsTreeCommandQueueHandler.php'; $handler = new ilECSCmsTreeCommandQueueHandler($this->getServer()); break; case ilECSEventQueueReader::TYPE_CMS_COURSES: include_once './Services/WebServices/ECS/classes/Course/class.ilECSCmsCourseCommandQueueHandler.php'; $handler = new ilECSCmsCourseCommandQueueHandler($this->getServer()); break; case ilECSEventQueueReader::TYPE_CMS_COURSE_MEMBERS: include_once './Services/WebServices/ECS/classes/Course/class.ilECSCmsCourseMemberCommandQueueHandler.php'; $handler = new ilECSCmsCourseMemberCommandQueueHandler($this->getServer()); break; default: $this->log->write(__METHOD__ . ': Unknown event type in queue ' . $event['type']); break; } $res = false; switch ($event['op']) { case ilECSEvent::NEW_EXPORT: // DEPRECATED? // $this->handleNewlyCreate($event['id']); // $this->log->write(__METHOD__.': Handling new creation. DONE'); break; case ilECSEvent::DESTROYED: $res = $handler->handleDelete($this->getServer(), $event['id']); $this->log->write(__METHOD__ . ': Handling delete. DONE'); break; case ilECSEvent::CREATED: $res = $handler->handleCreate($this->getServer(), $event['id'], $this->mids); $this->log->write(__METHOD__ . ': Handling create. DONE'); break; case ilECSEvent::UPDATED: $res = $handler->handleUpdate($this->getServer(), $event['id'], $this->mids); $this->log->write(__METHOD__ . ': Handling update. DONE'); break; default: $this->log->write(__METHOD__ . ': Unknown event operation in queue ' . $event['op']); break; } if ($res) { $this->log->write(__METHOD__ . ': Processing of event done ' . $event['event_id']); $this->event_reader->delete($event['event_id']); } else { $this->log->write(__METHOD__ . ': Processing of event failed ' . $event['event_id']); } } }