| @@ 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 | ||
| @@ 595-630 (lines=36) @@ | ||
| 592 | * @return ObjectDataInterface|null Returns object of type ObjectDataInterface or <code>null</code> |
|
| 593 | * if the repository response was empty |
|
| 594 | */ |
|
| 595 | public function getObject( |
|
| 596 | $repositoryId, |
|
| 597 | $objectId, |
|
| 598 | $filter = null, |
|
| 599 | $includeAllowableActions = false, |
|
| 600 | IncludeRelationships $includeRelationships = null, |
|
| 601 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 602 | $includePolicyIds = false, |
|
| 603 | $includeAcl = false, |
|
| 604 | ExtensionDataInterface $extension = null |
|
| 605 | ) { |
|
| 606 | $url = $this->getObjectUrl($repositoryId, $objectId, Constants::SELECTOR_OBJECT); |
|
| 607 | $url->getQuery()->modify( |
|
| 608 | array( |
|
| 609 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 610 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 611 | Constants::PARAM_POLICY_IDS => $includePolicyIds ? 'true' : 'false', |
|
| 612 | Constants::PARAM_ACL => $includeAcl ? 'true' : 'false', |
|
| 613 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 614 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 615 | ) |
|
| 616 | ); |
|
| 617 | ||
| 618 | if (!empty($filter)) { |
|
| 619 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 620 | } |
|
| 621 | ||
| 622 | if ($includeRelationships !== null) { |
|
| 623 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 624 | } |
|
| 625 | ||
| 626 | $responseData = $this->read($url)->json(); |
|
| 627 | ||
| 628 | // TODO: Implement Cache |
|
| 629 | return $this->getJsonConverter()->convertObject($responseData); |
|
| 630 | } |
|
| 631 | ||
| 632 | /** |
|
| 633 | * Gets the specified information for the object specified by path. |
|
| @@ 653-688 (lines=36) @@ | ||
| 650 | * @return ObjectDataInterface|null Returns object of type <code>ObjectDataInterface</code> or <code>null</code> |
|
| 651 | * if the repository response was empty |
|
| 652 | */ |
|
| 653 | public function getObjectByPath( |
|
| 654 | $repositoryId, |
|
| 655 | $path, |
|
| 656 | $filter = null, |
|
| 657 | $includeAllowableActions = false, |
|
| 658 | IncludeRelationships $includeRelationships = null, |
|
| 659 | $renditionFilter = Constants::RENDITION_NONE, |
|
| 660 | $includePolicyIds = false, |
|
| 661 | $includeAcl = false, |
|
| 662 | ExtensionDataInterface $extension = null |
|
| 663 | ) { |
|
| 664 | $url = $this->getPathUrl($repositoryId, $path, Constants::SELECTOR_OBJECT); |
|
| 665 | $url->getQuery()->modify( |
|
| 666 | array( |
|
| 667 | Constants::PARAM_ALLOWABLE_ACTIONS => $includeAllowableActions ? 'true' : 'false', |
|
| 668 | Constants::PARAM_RENDITION_FILTER => $renditionFilter, |
|
| 669 | Constants::PARAM_POLICY_IDS => $includePolicyIds ? 'true' : 'false', |
|
| 670 | Constants::PARAM_ACL => $includeAcl ? 'true' : 'false', |
|
| 671 | Constants::PARAM_SUCCINCT => $this->getSuccinct() ? 'true' : 'false', |
|
| 672 | Constants::PARAM_DATETIME_FORMAT => (string) $this->getDateTimeFormat() |
|
| 673 | ) |
|
| 674 | ); |
|
| 675 | ||
| 676 | if (!empty($filter)) { |
|
| 677 | $url->getQuery()->modify(array(Constants::PARAM_FILTER => (string) $filter)); |
|
| 678 | } |
|
| 679 | ||
| 680 | if ($includeRelationships !== null) { |
|
| 681 | $url->getQuery()->modify(array(Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships)); |
|
| 682 | } |
|
| 683 | ||
| 684 | $responseData = $this->read($url)->json(); |
|
| 685 | ||
| 686 | // TODO Implement Cache |
|
| 687 | return $this->getJsonConverter()->convertObject($responseData); |
|
| 688 | } |
|
| 689 | ||
| 690 | /** |
|
| 691 | * Gets the list of properties for an object. |
|