@@ 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 | [ |
|
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([Constants::PARAM_FILTER => (string) $filter]); |
|
212 | } |
|
213 | ||
214 | if ($includeRelationships !== null) { |
|
215 | $url->getQuery()->modify([Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships]); |
|
216 | } |
|
217 | ||
218 | $responseData = (array) $this->readJson($url); |
|
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 | [ |
|
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([Constants::PARAM_FILTER => (string) $filter]); |
|
302 | } |
|
303 | ||
304 | if ($includeRelationships !== null) { |
|
305 | $url->getQuery()->modify([Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships]); |
|
306 | } |
|
307 | ||
308 | $responseData = (array) $this->readJson($url); |
|
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 | [ |
|
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([Constants::PARAM_FILTER => (string) $filter]); |
|
355 | } |
|
356 | ||
357 | if ($includeRelationships !== null) { |
|
358 | $url->getQuery()->modify([Constants::PARAM_RELATIONSHIPS => (string) $includeRelationships]); |
|
359 | } |
|
360 | ||
361 | $responseData = (array) $this->readJson($url); |
|
362 | ||
363 | // TODO Implement Cache |
|
364 | return $this->getJsonConverter()->convertObjectParents($responseData); |
|
365 | } |
|
366 | } |
|
367 |