/** * Updates existing record * @param \Jazz\Model\IObject $model */ protected function _update(\Jazz\Model\IObject $model) { $query = \Jazz\Model::factory()->query($model->name()); if ($query instanceof \Jazz\Model\Query\IUpdate) { $query->update($model->primary(), $this->_filterDataToSave($model)); } }
/** * Run logic * @param array $args * @return bool * @throws \Jazz\Command\Exception\ExecutionFailure */ protected function _run(array $args) { parent::_run($args); /* @var $model \Jazz\IModel */ $ret = false; $model = $args['model']; if ($model->data()->isLoaded()) { $query = \Jazz\Model::factory()->query($model->name()); if ($query instanceof \Jazz\Model\Query\IDelete) { $query->delete($model->data()->primary()); $ret = true; } } $model->clear(); return $ret; }
/** * Run logic * @param array $args * @return bool * @throws \Jazz\Command\Exception\ExecutionFailure */ protected function _run(array $args) { parent::_run($args); $col = \Jazz\Model::factory()->collection($args['type']); $col->setType($args['type']); $col->setClass($args['type']); if ($args['reference'] !== null) { $col->setKey($args['reference']); } $callback = $col->getCallback(); $callback->setArgs($args['args']); if (is_string($callback)) { $callback->setMethod($callback); } else { if (is_array($callback)) { $callback->setMethod($callback[1], \Jazz\Model::factory()->query($callback[0])); } } return $col; }
/** * Run logic * @param array $args * @return bool * @throws \Jazz\Command\Exception\ExecutionFailure */ protected function _run(array $args) { parent::_run($args); // verify ID $id = $args['id']; if ($id !== null && !is_numeric($id) && !is_string($id)) { throw new \Jazz\Command\Exception\Failure('Invalid ID'); } // verify readOnly $readOnly = $args['readOnly']; if (!is_bool($readOnly)) { $readOnly = false; } /* @var $model \Jazz\IModel */ $model = $args['model']; $data = array(); $query = \Jazz\Model::factory()->query($model->name()); if ($query instanceof \Jazz\Model\Query\ISelect) { $data = $query->select($id); } $model->populate($data, $readOnly); return !empty($data); }
/** * Returns if KEY defined * @param string $key * @return bool */ public function is(string $key) : bool { return parent::is($key) || $this->isDirty($key); }
/** * Returns single data object * @param int|string $key * @param bool $useReferenceKey * @return \Jazz\IModel * @throws \Jazz\Model\Exception\KeyUndefined */ public function object($key, $useReferenceKey = false) { if (!$this->exists($key, $useReferenceKey)) { throw new \Jazz\Model\Exception\KeyUndefined($key); } $key = $this->getReference($key, $useReferenceKey); if (!isset($this->_objects[$key])) { if ($this->hasAdded($key)) { $data = $this->getAdded($key); } else { if ($this->hasRemoved($key)) { $data = $this->getRemoved($key); } else { $data = $this->get($key); } } $this->_objects[$key] = \Jazz\Model::factory()->model($this->getClass(), $data, $this->areModelsReadOnly()); } return $this->_objects[$key]; }
/** * Returns the Model * @return \Jazz\IModel|null */ protected function getModel() { if ($this->_model === null) { $this->_model = \Jazz\Model::factory()->model($this->getCollection()->getClass()); } return $this->_model; }
/** * Run logic * @param array $args * @return bool * @throws \Jazz\Command\Exception\ExecutionFailure */ protected function _run(array $args) { parent::_run($args); return \Jazz\Model::factory()->model($args['type'], $args['id']); }