/** * Applies a custom query to the QueryBuilder * * @param QueryBuilder $qb The query builder * @param ManagerFilter $filter The query filter */ protected function applyCustomQuery(QueryBuilder $qb, ManagerFilter $filter) { // Apply special handling for non-direct fields in relations, where the frontend has no idea about. foreach ($filter->getSorters() as $sorter) { switch ($sorter->getSortField()) { case "q.part_name": $qb->join("q.part", "p"); $sorter->setSortField("p.name"); break; case "q.user_id": $qb->leftJoin("q.user", "u"); $sorter->setSortField("u.username"); break; case "q.direction": $sorter->setSortField("q.dateTime"); break; case "q.storageLocation_name": $qb->join("q.part", "p")->join("p.storageLocation", "st"); $sorter->setSortField("st.name"); break; default: break; } } }
public function get() { if ($this->hasParameter("id")) { return array("data" => PartManager::getInstance()->getPart($this->getParameter("id"))->serialize()); } else { $filter = new ManagerFilter($this); $filter->setFilterCallback(array($this, "filterCallback")); return PartManager::getInstance()->getList($filter); } }
/** * (non-PHPdoc) * @see PartKeepr\Service.RestfulService::get() */ public function get() { if ($this->hasParameter("id")) { return array("data" => SystemNoticeManager::getInstance()->getEntity($this->getParameter("id"))->serialize()); } else { $parameters = new ManagerFilter($this); $parameters->setFilterCallback(array($this, "filterCallback")); return SystemNoticeManager::getInstance()->getList($parameters); } }
/** * (non-PHPdoc) * @see PartKeepr\Service.RestfulService::get() */ public function get() { if ($this->hasParameter("id")) { return array("data" => ProjectManager::getInstance()->getEntity($this->getParameter("id"))->serialize()); } else { $parameters = new ManagerFilter($this); $parameters->setFilterField("name"); return ProjectManager::getInstance()->getList($parameters); } }
/** * (non-PHPdoc) * @see \PartKeepr\Service\RestfulService::get() */ public function get() { if ($this->hasParameter("id")) { $job = PrintingJobManager::getInstance()->getEntity($this->getParameter("id")); $this->checkPermission($job); return array("data" => $job->serialize()); } else { $filter = new ManagerFilter($this); $filter->setFilterCallback(array($this, "filterCallback")); return PrintingJobManager::getInstance()->getList($filter); } }
/** * Implements the get() call for the RestfulService. * * If the "id" parameter is passed, try to return the user by id. If not, * return a list. * * @see PartKeepr\Service.RestfulService::get() */ public function get() { if ($this->hasParameter("id")) { if (!SessionManager::getCurrentSession()->getUser()->isAdmin()) { throw new \Exception("Permission denied"); } return array("data" => UserManager::getInstance()->getUser($this->getParameter("id"))->serialize()); } else { $filter = new ManagerFilter($this); $filter->setFilterCallback(array($this, "filterCallback")); return UserManager::getInstance()->getList($filter); } }
/** * (non-PHPdoc) * @see PartKeepr\Service.RestfulService::get() */ public function get() { if ($this->hasParameter("id")) { return array("data" => StockManager::getInstance()->getEntity($this->getParameter("id"))->serialize()); } else { $parameters = new ManagerFilter($this); $parameters->setFilterField("name"); if ($this->hasParameter("part")) { $parameters->setFilterCallback(array($this, "filterCallback")); } return StockManager::getInstance()->getList($parameters); } }
/** * Appends various join tables to the result set * * (non-PHPdoc) * @see PartKeepr\Manager.AbstractManager::applyCustomQuery() */ protected function applyCustomQuery(QueryBuilder $qb, ManagerFilter $filter) { /** * Pull in additional tables */ $qb->join("q.storageLocation", "st")->leftJoin("q.footprint", "f")->join("q.category", "c")->leftJoin("q.partUnit", "pu"); // Apply special handling for non-direct fields in relations, where the frontend has no idea about. foreach ($filter->getSorters() as $sorter) { switch ($sorter->getSortField()) { case "q.categoryPath": $sorter->setSortField("c.categoryPath"); break; case "q.storageLocationName": $sorter->setSortField("st.name"); break; case "q.footprintName": $sorter->setSortField("f.name"); break; default: break; } } }
/** * Applies record sorting * * @param QueryBuilder $qb The query builder * @param ManagerFilter $filter The query filter */ protected function applySorting(QueryBuilder $qb, ManagerFilter $filter) { foreach ($filter->getSorters() as $sorter) { if ($sorter->getSortField() !== null && $sorter->getSortField() != "q.") { $qb->addOrderBy($sorter->getSortField(), $sorter->getSortDirection()); } } }