13 namespace Fossology\UI\Api\Controllers;
21 use Psr\Http\Message\ServerRequestInterface;
57 const TYPE_COPYRIGHT = 1;
60 const TYPE_AUTHOR = 8;
62 const TYPE_KEYWORD = 32;
68 $this->copyrightDao = $this->container->get(
'dao.copyright');
69 $this->copyrightHist = $this->restHelper->getPlugin(
'ajax-copyright-hist');
82 return $this->
getFileCX($request, $response, $args, self::TYPE_COPYRIGHT);
95 return $this->
getFileCX($request, $response, $args, self::TYPE_EMAIL);
108 return $this->
getFileCX($request, $response, $args, self::TYPE_URL);
121 return $this->
getFileCX($request, $response, $args, self::TYPE_AUTHOR);
134 return $this->
getFileCX($request, $response, $args, self::TYPE_ECC);
147 return $this->
getFileCX($request, $response, $args, self::TYPE_KEYWORD);
160 return $this->
getFileCX($request, $response, $args, self::TYPE_IPRA);
173 return $this->
deleteFileCX($args, $response, self::TYPE_COPYRIGHT);
186 return $this->
deleteFileCX($args, $response, self::TYPE_EMAIL);
199 return $this->
deleteFileCX($args, $response, self::TYPE_URL);
212 return $this->
deleteFileCX($args, $response, self::TYPE_AUTHOR);
225 return $this->
deleteFileCX($args, $response, self::TYPE_ECC);
238 return $this->
deleteFileCX($args, $response, self::TYPE_KEYWORD);
251 return $this->
deleteFileCX($args, $response, self::TYPE_IPRA);
264 return $this->
updateFileCx($request, $response, $args, self::TYPE_COPYRIGHT);
277 return $this->
updateFileCx($request, $response, $args, self::TYPE_EMAIL);
290 return $this->
updateFileCx($request, $response, $args, self::TYPE_URL);
303 return $this->
updateFileCx($request, $response, $args, self::TYPE_AUTHOR);
316 return $this->
updateFileCx($request, $response, $args, self::TYPE_ECC);
329 return $this->
updateFileCx($request, $response, $args, self::TYPE_KEYWORD);
342 return $this->
updateFileCx($request, $response, $args, self::TYPE_IPRA);
355 return $this->
restoreFileCx($args, $response, self::TYPE_COPYRIGHT);
368 return $this->
restoreFileCx($args, $response, self::TYPE_EMAIL);
381 return $this->
restoreFileCx($args, $response, self::TYPE_URL);
394 return $this->
restoreFileCx($args, $response, self::TYPE_AUTHOR);
407 return $this->
restoreFileCx($args, $response, self::TYPE_ECC);
420 return $this->
restoreFileCx($args, $response, self::TYPE_KEYWORD);
433 return $this->
restoreFileCx($args, $response, self::TYPE_IPRA);
447 $uploadPk = $args[
"id"];
448 $uploadTreeId = $args[
"itemId"];
449 $query = $request->getQueryParams();
455 if (!array_key_exists(self::COPYRIGHT_PARAM, $query)) {
457 "required query param with expected values 'active' or 'inactive");
460 if ($status ==
"active") {
462 }
else if ($status ==
"inactive") {
466 "parameter, expected values 'active' or 'inactive");
468 $agentId = $this->copyrightHist->getAgentId($uploadPk,
'copyright_ars');
469 $uploadTreeTableName = $this->restHelper->getUploadDao()->getUploadtreeTableName($uploadPk);
470 $returnVal = $this->copyrightDao->getTotalCopyrights($uploadPk, $uploadTreeId, $uploadTreeTableName, $agentId,
'statement', $statusVal);
471 return $response->withJson(array(
"total_copyrights" => intval($returnVal)), 200);
484 private function getFileCX($request, $response, $args, $cxType)
487 case self::TYPE_COPYRIGHT:
488 $dataType =
'statement';
489 $agentArs =
'copyright_ars';
491 case self::TYPE_EMAIL:
493 $agentArs =
'copyright_ars';
497 $agentArs =
'copyright_ars';
499 case self::TYPE_AUTHOR:
500 $dataType =
'author';
501 $agentArs =
'copyright_ars';
505 $agentArs =
'ecc_ars';
507 case self::TYPE_KEYWORD:
508 $dataType =
'keyword';
509 $agentArs =
'keyword_ars';
511 case self::TYPE_IPRA:
513 $agentArs =
'ipra_ars';
516 $dataType =
'statement';
517 $agentArs =
'copyright_ars';
519 $uploadPk = $args[
"id"];
520 $uploadTreeId = $args[
"itemId"];
521 $query = $request->getQueryParams();
522 $limit = $request->getHeaderLine(self::LIMIT_PARAM);
524 if (!empty($limit)) {
525 $limit = filter_var($limit, FILTER_VALIDATE_INT);
528 "limit should be positive integer > 1");
533 if (!array_key_exists(self::COPYRIGHT_PARAM, $query)) {
535 "required query param with expected values 'active' or 'inactive");
538 if ($status ==
"active") {
540 }
else if ($status ==
"inactive") {
544 "parameter, expected values 'active' or 'inactive");
550 $agentId = $this->copyrightHist->getAgentId($uploadPk, $agentArs);
551 $uploadTreeTableName = $this->restHelper->getUploadDao()->getuploadTreeTableName($uploadPk);
552 $page = $request->getHeaderLine(self::PAGE_PARAM);
553 if (empty($page) && $page !=
"0") {
556 if (!empty($page) || $page ==
"0") {
557 $page = filter_var($page, FILTER_VALIDATE_INT);
560 "page should be positive integer > 0");
563 $offset = $limit * ($page - 1);
564 list($rows, $iTotalDisplayRecords, $iTotalRecords) = $this->copyrightHist
565 ->getCopyrights($uploadPk, $uploadTreeId, $uploadTreeTableName,
566 $agentId, $dataType,
'active', $statusVal, $offset, $limit);
567 foreach ($rows as $row) {
568 $row[
'count'] = intval($row[
'copyright_count']);
569 unset($row[
'copyright_count']);
572 $totalPages = intval(ceil($iTotalRecords / $limit));
573 if ($totalPages != 0 && $page > $totalPages) {
575 "Can not exceed total pages: $totalPages"))
576 ->setHeaders([
"X-Total-Pages" => $totalPages]);
578 return $response->withHeader(
"X-Total-Pages", $totalPages)->withJson($finalVal, 200);
594 $uploadDao = $this->restHelper->getUploadDao();
595 $uploadPk = intval($args[
'id']);
596 $uploadTreeId = intval($args[
'itemId']);
597 $copyrightHash = $args[
'hash'];
598 $userId = $this->restHelper->getUserId();
599 $cpTable = $this->copyrightHist->getTableName($dataType);
604 $uploadTreeTableName = $uploadDao->getUploadTreeTableName($uploadTreeId);
605 $item = $uploadDao->getItemTreeBounds($uploadTreeId, $uploadTreeTableName);
606 $this->copyrightDao->updateTable($item, $copyrightHash,
'', $userId, $cpTable,
'delete');
607 $returnVal =
new Info(200,
"Successfully removed $delName.", InfoType::INFO);
608 return $response->withJson($returnVal->getArray(), $returnVal->getCode());
623 $uploadPk = intval($args[
'id']);
624 $uploadTreeId = intval($args[
'itemId']);
625 $copyrightHash = ($args[
'hash']);
626 $userId = $this->restHelper->getUserId();
627 $cpTable = $this->copyrightHist->getTableName($dataType);
632 $uploadTreeTableName = $this->restHelper->getUploadDao()->getuploadTreeTableName($uploadTreeId);
633 $item = $this->restHelper->getUploadDao()->getItemTreeBounds($uploadTreeId, $uploadTreeTableName);
634 $this->copyrightDao->updateTable($item, $copyrightHash,
'', $userId, $cpTable,
'rollback');
635 $returnVal =
new Info(200,
"Successfully restored $resName.", InfoType::INFO);
636 return $response->withJson($returnVal->getArray(), 200);
652 $uploadTreeId = intval($args[
"itemId"]);
653 $uploadPk = intval($args[
"id"]);
654 $copyrightHash = $args[
"hash"];
655 $userId = $this->restHelper->getUserId();
656 $cpTable = $this->copyrightHist->getTableName($dataType);
658 $content = $body[
'content'];
663 $uploadTreeTableName = $this->restHelper->getUploadDao()->getuploadTreeTableName($uploadTreeId);
664 $item = $this->restHelper->getUploadDao()->getItemTreeBounds($uploadTreeId, $uploadTreeTableName);
665 $this->copyrightDao->updateTable($item, $copyrightHash, $content, $userId, $cpTable);
666 $returnVal =
new Info(200,
"Successfully Updated $resName.", InfoType::INFO);
667 return $response->withJson($returnVal->getArray(), 200);
679 case self::TYPE_COPYRIGHT:
680 $dataType =
'statement';
681 $dispName =
'copyright';
683 case self::TYPE_EMAIL:
684 $dispName = $dataType =
'email';
687 $dispName = $dataType =
'url';
689 case self::TYPE_AUTHOR:
690 $dispName = $dataType =
'author';
693 $dispName = $dataType =
'ecc';
695 case self::TYPE_KEYWORD:
696 $dispName = $dataType =
'keyword';
698 case self::TYPE_IPRA:
699 $dispName = $dataType =
'ipra';
702 $dataType =
'statement';
703 $dispName =
'copyright';
705 return array($dataType, $dispName);
deleteFileEmail($request, $response, $args)
convertTypeToTable(int $cxType)
getFileCopyrights($request, $response, $args)
updateFileAuthor($request, $response, $args)
getFileKeyword($request, $response, $args)
updateFileEcc($request, $response, $args)
restoreFileEcc($request, $response, $args)
updateFileKeyword($request, $response, $args)
getFileAuthor($request, $response, $args)
deleteFileUrl($request, $response, $args)
updateFileUrl($request, $response, $args)
getFileUrl($request, $response, $args)
updateFileIpra($request, $response, $args)
restoreFileCx($args, $response, $cxType)
restoreFileUrl($request, $response, $args)
restoreFileEmail($request, $response, $args)
restoreFileCopyright($request, $response, $args)
const COPYRIGHT_FETCH_LIMIT
getFileEmail($request, $response, $args)
deleteFileEcc($request, $response, $args)
deleteFileKeyword($request, $response, $args)
getFileEcc($request, $response, $args)
restoreFileIpra($request, $response, $args)
deleteFileAuthor($request, $response, $args)
deleteFileCX($args, $response, $cxType)
restoreFileKeyword($request, $response, $args)
restoreFileAuthor($request, $response, $args)
deleteFileIpra($request, $response, $args)
getFileCX($request, $response, $args, $cxType)
updateFileEmail($request, $response, $args)
getFileIpra($request, $response, $args)
getTotalFileCopyrights($request, $response, $args)
updateFileCopyright($request, $response, $args)
deleteFileCopyright($request, $response, $args)
updateFileCx($request, $response, $args, $cxType)
Base controller for REST calls.
isItemExists(int $uploadId, int $itemId)
getParsedBody(ServerRequestInterface $request)
Parse request body as JSON and return associative PHP array.
Override Slim response for withJson function.
Different type of infos provided by REST.
Info model to contain general error and return values.
list_t type structure used to keep various lists. (e.g. there are multiple lists).