/** * Returns a list of project attachments * * @param int $start Start of the list, default 0 * @param int $limit Number of users to list, default 10 * @param string $sort The field to sort by, default "name" * @param string $dir The direction to sort (ASC or DESC), default ASC * @param string $filter The project id */ public function getProjectAttachments($start = 0, $limit = 10, $sort = "name", $dir = "asc", $filter = "") { $qb = PartKeepr::getEM()->createQueryBuilder(); $qb->select("st")->from("PartKeepr\\Project\\ProjectAttachment", "st")->leftJoin('st.project', "fp"); if ($filter != "") { $project = Project::loadById($filter); $qb = $qb->where("st.project = :project"); $qb->setParameter("project", $project); } if ($limit > -1) { $qb->setMaxResults($limit); $qb->setFirstResult($start); } $qb->orderBy("st." . $sort, $dir); $query = $qb->getQuery(); $result = $query->getResult(); $totalQueryBuilder = PartKeepr::getEM()->createQueryBuilder(); $totalQueryBuilder->select("COUNT(st.id)")->from("PartKeepr\\Project\\ProjectAttachment", "st"); if ($filter != "") { $totalQueryBuilder = $totalQueryBuilder->where("st.project = :project"); $totalQueryBuilder->setParameter("project", $project); } $totalQuery = $totalQueryBuilder->getQuery(); $aData = array(); foreach ($result as $item) { $aData[] = $item->serialize(); } return array("data" => $aData, "totalCount" => $totalQuery->getSingleScalarResult()); }
/** * (non-PHPdoc) * @see PartKeepr\Service.RestfulService::create() */ public function create() { $this->requireParameter("tmp_id"); $this->requireParameter("project_id"); $tmpImage = TempUploadedFile::loadById($this->getParameter("tmp_id")); $file = new ProjectAttachment(); $project = Project::loadById($this->getParameter("project_id")); $file->setProject($project); $file->replace($tmpImage->getFilename()); $file->setOriginalFilename($tmpImage->getOriginalFilename()); $file->setDescription($this->getParameter("description")); PartKeepr::getEM()->persist($file); PartKeepr::getEM()->flush(); return $file->serialize(); }