| @@ 187-222 (lines=36) @@ | ||
| 184 | * @param ExtensionDataInterface|null $extension |
|
| 185 | * @return ObjectInFolderContainerInterface[] |
|
| 186 | */ |
|
| 187 | public function getDescendants( |
|
| 188 | $repositoryId, |
|
| 189 | $folderId, |
|
| 190 | $depth, |
|
| 191 | $filter = null, |
|
| 192 | $includeAllowableActions = false, |
|
| 193 | IncludeRelationships $includeRelationships = null, |
|
| 194 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 195 | $includePathSegment = false, |
|
| 196 | ExtensionDataInterface $extension = null |
|
| 197 | ) { |
|
| 198 | $url = $this->getObjectUrl($repositoryId, $folderId, Constants::SELECTOR_DESCENDANTS); |
|
| 199 | $url->getQuery()->modify( |
|
| 200 | array( |
|
| 201 | Constants::PARAM_DEPTH => (string) $depth, |
|
| 202 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 203 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 204 | Constants::PARAM_PATH_SEGMENT => $includePathSegment ? 'true' : 'false', |
|
| 205 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 206 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 207 | ) |
|
| 208 | ); |
|
| 209 | ||
| 210 | if (!empty($filter)) { |
|
| 211 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 212 | } |
|
| 213 | ||
| 214 | if ($includeRelationships !== null) { |
|
| 215 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 216 | } |
|
| 217 | ||
| 218 | $responseData = $this->read($url)->json(); |
|
| 219 | ||
| 220 | // TODO Implement Cache |
|
| 221 | return $this->getJsonConverter()->convertDescendants($responseData); |
|
| 222 | } |
|
| 223 | ||
| 224 | /** |
|
| 225 | * Gets the parent folder object for the specified folder object. |
|
| @@ 277-312 (lines=36) @@ | ||
| 274 | * @param ExtensionDataInterface|null $extension |
|
| 275 | * @return ObjectInFolderContainerInterface[] |
|
| 276 | */ |
|
| 277 | public function getFolderTree( |
|
| 278 | $repositoryId, |
|
| 279 | $folderId, |
|
| 280 | $depth, |
|
| 281 | $filter = null, |
|
| 282 | $includeAllowableActions = false, |
|
| 283 | IncludeRelationships $includeRelationships = null, |
|
| 284 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 285 | $includePathSegment = false, |
|
| 286 | ExtensionDataInterface $extension = null |
|
| 287 | ) { |
|
| 288 | $url = $this->getObjectUrl($repositoryId, $folderId, Constants::SELECTOR_FOLDER_TREE); |
|
| 289 | $url->getQuery()->modify( |
|
| 290 | array( |
|
| 291 | Constants::PARAM_DEPTH => (string) $depth, |
|
| 292 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 293 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 294 | Constants::PARAM_PATH_SEGMENT => $includePathSegment ? 'true' : 'false', |
|
| 295 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 296 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 297 | ) |
|
| 298 | ); |
|
| 299 | ||
| 300 | if (!empty($filter)) { |
|
| 301 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 302 | } |
|
| 303 | ||
| 304 | if ($includeRelationships !== null) { |
|
| 305 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 306 | } |
|
| 307 | ||
| 308 | $responseData = $this->read($url)->json(); |
|
| 309 | ||
| 310 | // TODO Implement Cache |
|
| 311 | return $this->getJsonConverter()->convertDescendants($responseData); |
|
| 312 | } |
|
| 313 | ||
| 314 | /** |
|
| 315 | * Gets the parent folder(s) for the specified non-folder, fileable object |
|
| @@ 332-365 (lines=34) @@ | ||
| 329 | * @param ExtensionDataInterface|null $extension |
|
| 330 | * @return ObjectParentDataInterface[] |
|
| 331 | */ |
|
| 332 | public function getObjectParents( |
|
| 333 | $repositoryId, |
|
| 334 | $objectId, |
|
| 335 | $filter = null, |
|
| 336 | $includeAllowableActions = false, |
|
| 337 | IncludeRelationships $includeRelationships = null, |
|
| 338 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 339 | $includeRelativePathSegment = false, |
|
| 340 | ExtensionDataInterface $extension = null |
|
| 341 | ) { |
|
| 342 | $url = $this->getObjectUrl($repositoryId, $objectId, Constants::SELECTOR_PARENTS); |
|
| 343 | $url->getQuery()->modify( |
|
| 344 | array( |
|
| 345 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 346 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 347 | Constants::PARAM_RELATIVE_PATH_SEGMENT => $includeRelativePathSegment ? 'true' : 'false', |
|
| 348 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 349 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 350 | ) |
|
| 351 | ); |
|
| 352 | ||
| 353 | if (!empty($filter)) { |
|
| 354 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 355 | } |
|
| 356 | ||
| 357 | if ($includeRelationships !== null) { |
|
| 358 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 359 | } |
|
| 360 | ||
| 361 | $responseData = $this->read($url)->json(); |
|
| 362 | ||
| 363 | // TODO Implement Cache |
|
| 364 | return $this->getJsonConverter()->convertObjectParents($responseData); |
|
| 365 | } |
|
| 366 | } |
|
| 367 | ||
| @@ 613-648 (lines=36) @@ | ||
| 610 | * @return ObjectDataInterface|null Returns object of type ObjectDataInterface or <code>null</code> |
|
| 611 | * if the repository response was empty |
|
| 612 | */ |
|
| 613 | public function getObject( |
|
| 614 | $repositoryId, |
|
| 615 | $objectId, |
|
| 616 | $filter = null, |
|
| 617 | $includeAllowableActions = false, |
|
| 618 | IncludeRelationships $includeRelationships = null, |
|
| 619 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 620 | $includePolicyIds = false, |
|
| 621 | $includeAcl = false, |
|
| 622 | ExtensionDataInterface $extension = null |
|
| 623 | ) { |
|
| 624 | $url = $this->getObjectUrl($repositoryId, $objectId, Constants::SELECTOR_OBJECT); |
|
| 625 | $url->getQuery()->modify( |
|
| 626 | array( |
|
| 627 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 628 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 629 | Constants::PARAM_POLICY_IDS => $includePolicyIds ? 'true' : 'false', |
|
| 630 | Constants::PARAM_ACL => $includeAcl ? 'true' : 'false', |
|
| 631 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 632 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 633 | ) |
|
| 634 | ); |
|
| 635 | ||
| 636 | if (!empty($filter)) { |
|
| 637 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 638 | } |
|
| 639 | ||
| 640 | if ($includeRelationships !== null) { |
|
| 641 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 642 | } |
|
| 643 | ||
| 644 | $responseData = $this->read($url)->json(); |
|
| 645 | ||
| 646 | // TODO: Implement Cache |
|
| 647 | return $this->getJsonConverter()->convertObject($responseData); |
|
| 648 | } |
|
| 649 | ||
| 650 | /** |
|
| 651 | * Gets the specified information for the object specified by path. |
|
| @@ 671-706 (lines=36) @@ | ||
| 668 | * @return ObjectDataInterface|null Returns object of type <code>ObjectDataInterface</code> or <code>null</code> |
|
| 669 | * if the repository response was empty |
|
| 670 | */ |
|
| 671 | public function getObjectByPath( |
|
| 672 | $repositoryId, |
|
| 673 | $path, |
|
| 674 | $filter = null, |
|
| 675 | $includeAllowableActions = false, |
|
| 676 | IncludeRelationships $includeRelationships = null, |
|
| 677 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 678 | $includePolicyIds = false, |
|
| 679 | $includeAcl = false, |
|
| 680 | ExtensionDataInterface $extension = null |
|
| 681 | ) { |
|
| 682 | $url = $this->getPathUrl($repositoryId, $path, Constants::SELECTOR_OBJECT); |
|
| 683 | $url->getQuery()->modify( |
|
| 684 | array( |
|
| 685 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 686 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 687 | Constants::PARAM_POLICY_IDS => $includePolicyIds ? 'true' : 'false', |
|
| 688 | Constants::PARAM_ACL => $includeAcl ? 'true' : 'false', |
|
| 689 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 690 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 691 | ) |
|
| 692 | ); |
|
| 693 | ||
| 694 | if (!empty($filter)) { |
|
| 695 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 696 | } |
|
| 697 | ||
| 698 | if ($includeRelationships !== null) { |
|
| 699 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 700 | } |
|
| 701 | ||
| 702 | $responseData = $this->read($url)->json(); |
|
| 703 | ||
| 704 | // TODO Implement Cache |
|
| 705 | return $this->getJsonConverter()->convertObject($responseData); |
|
| 706 | } |
|
| 707 | ||
| 708 | /** |
|
| 709 | * Gets the list of properties for an object. |
|