13 namespace Fossology\UI\Api\Controllers;
19 use Psr\Http\Message\ServerRequestInterface;
28 private $searchHelperDao;
41 $this->searchHelperDao = $this->container->get(
'dao.searchhelperdao');
43 $searchType = $request->getHeaderLine(
"searchType");
44 $filename = $request->getHeaderLine(
"filename");
45 $tag = $request->getHeaderLine(
"tag");
46 $filesizeMin = $request->getHeaderLine(
"filesizemin");
47 $filesizeMax = $request->getHeaderLine(
"filesizemax");
48 $license = $request->getHeaderLine(
"license");
49 $copyright = $request->getHeaderLine(
"copyright");
50 $uploadId = $request->getHeaderLine(
"uploadId");
51 $page = $request->getHeaderLine(
"page");
52 $limit = $request->getHeaderLine(
"limit");
55 if (empty($searchType)) {
56 $searchType =
"allfiles";
60 if (empty($uploadId)) {
67 if (empty($filename) && empty($tag) && empty($filesizeMin) &&
68 empty($filesizeMax) && empty($license) && empty($copyright)) {
70 "At least one parameter, containing a value is required");
76 if ((! empty($filesizeMin) && (! is_numeric($filesizeMin) || $filesizeMin < 0)) ||
77 (! empty($filesizeMax) && (! is_numeric($filesizeMax) || $filesizeMax < 0))) {
79 "filesizemin and filesizemax need to be positive integers!");
85 if ((! ($page===
'') && (! is_numeric($page) || $page < 1)) ||
86 (! ($limit===
'') && (! is_numeric($limit) || $limit < 1))) {
88 "page and limit need to be positive integers!");
99 }
else if ($limit > 100) {
104 list($results, $count) = $this->searchHelperDao->GetResults($item,
105 $filename, $uploadId, $tag, $page-1, $limit,
106 $filesizeMin, $filesizeMax, $searchType, $license, $copyright,
107 $this->restHelper->getUploadDao(), $this->restHelper->getGroupId());
108 $totalPages = intval(ceil($count / $limit));
112 foreach ($results as $result) {
113 $currentUpload = $this->dbHelper->getUploads(
114 $this->restHelper->getUserId(), $this->restHelper->getGroupId(), 1, 1,
115 $result[
"upload_fk"],
null,
true)[1];
116 if (! empty($currentUpload)) {
117 $currentUpload = $currentUpload[0];
121 $uploadTreePk = $result[
"uploadtree_pk"];
122 $filename = $this->dbHelper->getFilenameFromUploadTree($uploadTreePk);
123 $currentResult =
new SearchResult($currentUpload, $uploadTreePk, $filename);
124 $searchResults[] = $currentResult->getArray();
126 return $response->withHeader(
"X-Total-Pages", $totalPages)->withJson($searchResults, 200);
Base controller for REST calls.
Controller for Search model.
performSearch($request, $response, $args)
Override Slim response for withJson function.
Model to hold search results.
GetParm($parameterName, $parameterType)
This function will retrieve the variables and check data types.