public function getById($id)
{
$data = $this->db->fetchRow("SELECT * FROM notes WHERE id = ?", $id);
if (!$data["id"]) {
throw new \Exception("Note item with id " . $id . " not found");
}
$this->assignVariablesToModel($data);
// get key-value data
$keyValues = $this->db->fetchAll("SELECT * FROM notes_data WHERE id = ?", $id);
$preparedData = [];
foreach ($keyValues as $keyValue) {
$data = $keyValue["data"];
$type = $keyValue["type"];
$name = $keyValue["name"];
if ($type == "document") {
if ($data) {
$data = Document::getById($data);
}
} elseif ($type == "asset") {
if ($data) {
$data = Asset::getById($data);
}
} elseif ($type == "object") {
if ($data) {
$data = Object\AbstractObject::getById($data);
}
} elseif ($type == "date") {
if ($data > 0) {
$date = new \DateTime();
$date->setTimestamp($data);
$data = $date;
}
} elseif ($type == "bool") {
$data = (bool) $data;
}
$preparedData[$name] = ["data" => $data, "type" => $type];
}
$this->model->setData($preparedData);
}